[更新] 该问题与问题GNU Screen: Programmers quotes in Readbuf和GNU Screen: files to numbered buffers?有关。由于它们没有得到解决,因此该问题针对环境变量的更一般概念。我的信念是,它们是提高Screen效率的关键。
1。如何在屏幕中使用Bash的变量,如:
$ export path=`pwd`
$ ^a :readbuf `echo $path`/debugging_code.php
2。如何重用Screen的缓冲区,如:
$ ^a :readreg a `echo $path`
$ ^a :readbuf $a/debugging_code.php
$ ^a ]
第3。如何使用Screen的缓冲区,如环境变量?
答案 0 :(得分:4)
以下命令不会创建新的屏幕会话,但会创建屏幕内部变量。在命令行上运行它允许您使用shell扩展:
$ screen -X setenv a "$PWD/debugging_code.php"
然后使用新变量:
C-a :readbuf $a
答案 1 :(得分:1)
我在屏幕4.0.3上做了一个补丁,它支持以下语法:
^A :readbuf !shell-command
这允许您执行任何任意shell命令并将输出传递到屏幕缓冲区。请注意,这是通过使用popen
执行子shell并将标准输出复制到bufferfile
设置中指定的当前文件(然后读取该文件)来实现的,所以请注意不要覆盖某些内容你不打算。此外,这个补丁可能非常不安全,所以请自担风险使用它。
一个例子可能是:
^A :readbuf !cat $HOME/projects/foobar/file.txt
任何shell命令都按字面意思执行。
在Github上查看包含该补丁的Git存储库的gnu-screen-readbuf-exec。