GNU Screen:环境变量

时间:2009-08-23 10:12:30

标签: environment-variables buffer gnu-screen

[更新] 该问题与问题GNU Screen: Programmers quotes in ReadbufGNU 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的缓冲区,如环境变量?

2 个答案:

答案 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