Linux

標準輸出到 gnu 螢幕複製緩衝區

  • March 7, 2014

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

引用自:https://serverfault.com/questions/42398