Screen - 继承当前窗口的环境

ric*_*cab 4 shell bash gnu-screen environment-variables

在 GNU Screen 中,如何创建一个新窗口,其 shell 继承了当前窗口中的 shell 环境?

通常的Ctrl+A C似乎没有这样做。

Dra*_*oan 5

如果您在一个屏幕上设置了环境变量(比如运行 bash),然后打开一个新屏幕,它是一个单独的 bash 进程,因此不会在单独的已经运行的 bash shell 上选择环境。解决该问题的快速解决方法是:

env TERMCAP= env | sed -r 's/^(\w+)=(.*)$/\1="\2"/' > env.sh
Run Code Online (Sandbox Code Playgroud)

那么一旦你必须Ctrlac得到一个新的外壳,你就可以

source env.sh
Run Code Online (Sandbox Code Playgroud)

它是 hacky 并且我使用它是env TERMCAP= env因为 TERMCAP 环境变量是多行的并且使sed事情变得更加复杂。它不漂亮,但它有效:)

您可能希望将其更改为:

env TERMCAP= env | sed -r 's/^(\w+)=(.*)$/export \1="\2"/' > env.sh
Run Code Online (Sandbox Code Playgroud)

所以变量也被导出。