在GNU屏幕中是否有一个命令将标准输出引导到复制缓冲区
我一直在使用文件做很多工作,把我想要的文件名复制并转换成命令是很好的
例如
ls | grep过程
$ ls | grep cal calendar.inc-gen.php // enter copy mode $^ay // 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脚本,但我经常发现自己需要terminal屏幕上的一个专门的信息,这将是很好的只是键入
ls | grep cal > To_GNU_SREEN_COPY_:) or something
丹尼斯的解决scheme如下
您可能需要在.screenrc bufferfile / 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屏幕复制/回滚缓冲区位于寄存器.
要在屏幕会话中从shell发送string到复制/回滚缓冲区,可以使用register命令,如下所示:
screen -X register . 'Hello World'
但是,如果此命令是从脚本运行的,则情况可能如此,那么您将需要指定屏幕服务器名称。
screen -S "1234.pts-1.localhost" -X register . 'Hello World'
这个命令也会从shellvariables中提取值,而不需要echo:
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