Environment variables GNU屏幕:环境变量

Environment variables GNU屏幕:环境变量,environment-variables,buffer,gnu-screen,Environment Variables,Buffer,Gnu Screen,[更新] 该问题与问题和解决方案相关。由于没有解决这些问题,这个问题的目标是关于环境变量的更一般的概念。我相信它们是使屏幕更高效的关键 1。如何在屏幕中使用Bash的变量,如: $ export path=`pwd` $ ^a :readbuf `echo $path`/debugging_code.php $ ^a :readreg a `echo $path` $ ^a :readbuf $a/debugging_code.php $ ^a ] 2。如何重用屏幕的缓冲区,如: $ exp

[更新] 该问题与问题和解决方案相关。由于没有解决这些问题,这个问题的目标是关于环境变量的更一般的概念。我相信它们是使屏幕更高效的关键

1。如何在屏幕中使用Bash的变量,如:

$ export path=`pwd`
$ ^a :readbuf `echo $path`/debugging_code.php
$ ^a :readreg a `echo $path`
$ ^a :readbuf $a/debugging_code.php
$ ^a ]
2。如何重用屏幕的缓冲区,如:

$ export path=`pwd`
$ ^a :readbuf `echo $path`/debugging_code.php
$ ^a :readreg a `echo $path`
$ ^a :readbuf $a/debugging_code.php
$ ^a ]

3。如何使用屏幕的缓冲区,如环境变量?

以下命令不会创建新的屏幕会话,但会创建屏幕内部变量。在命令行上运行它允许您使用shell扩展:

$ screen -X setenv a "$PWD/debugging_code.php"
然后使用新变量:

C-a :readbuf $a

我为screen 4.0.3制作了一个补丁,支持以下语法:

^A :readbuf !shell-command 任何shell命令都会按照键入的方式执行


有关包含修补程序的Git存储库,请参见Github。

这似乎与我刚才在这里回答的问题相同:Greg:更新,希望现在更清楚。第(1)部分的反问:当打开多个Shell时,每个Shell都有不同的环境,您希望screen使用哪种shell的环境变量?+1表示其凉爽度。Ubuntu“screen-xexport foo=“foo-world”中的类似命令出于某种原因不起作用。请注意,此上下文中的setenv是一个screen命令,而不是一个shubder csh命令。请澄清如何使用它。不知道为什么它不能在我的Ubuntu.Masi上工作,阅读你的第一条评论,我怀疑你认为上面的“setenv”是一个csh构造,你用等效的bash“export”常量替换了它。然而,这里的“setenv”是一个GNU屏幕命令。有关更多信息,请参见`屏幕--help中的grep“-X”;还有人屏幕中的grep“setenv”。这是IMHO中最好的解决方案,因为在当前窗口的外壳中搜索环境变量似乎不安全、困难(您经历了多少次ssh跳数?),而且不一定是最优的(也许我不希望每次更改窗口时屏幕的环境变量都发生变化)。这就把shell的工作留给了shell,让screen做它需要做的事情。