Linux
標準輸出到 gnu 螢幕複製緩衝區
GNU Screen 中是否有將標準輸出定向到複製緩衝區的命令
我一直在處理文件,很高興將我想要的文件名複製並傳遞到命令中
例如
ls | grep 程序
$ ls | grep cal calendar.inc-gen.php // enter copy mode $^a y // backward search for gen_chg ? cal // start region SPC //goto to end of file by forward search php php // done ENT // type command line $ git rm ^p // creates $ git rm calendar.inc-gen.php
我知道使用 bash 腳本有更簡單的方法可以做到這一點,但我經常發現自己需要來自終端螢幕的專門資訊,只需鍵入即可
ls | grep cal > To_GNU_SREEN_COPY_:) or something
丹尼斯的以下解決方案有效
您可能需要在 .screenrc 緩衝文件 /tmp/screen-exchange 中設置緩衝文件
這是一種方法:
echo -n cal* > /tmp/screen-exchange screen -X readbuf # or press Ctrl-a < git rm ^a] # type "git rm" then press Ctrl-a ]
gnu-screen Copy / Scrollback 緩衝區位於寄存器
.
要將字元串從螢幕會話中的 shell 發送到 Copy / Scrollback 緩衝區,您可以使用如下
register
命令:screen -X register . 'Hello World'
但是,如果此命令是從腳本執行的(很可能是這種情況),那麼您將需要指定螢幕伺服器名稱。
screen -S "1234.pts-1.localhost" -X register . 'Hello World'
此命令還將從 shell 變數中提取值,而無需回顯:
x='Hello World' screen -S "1234.pts-1.localhost" -X register . $x
指定視窗不是必需的,但是您可以這樣做。
y='Goodbye World' screen -S "1234.pts-1.localhost" -p 2 -X register . $y # Walk into the ocean.... fade to black.... roll credits