cpr*_*prn 4 gnu-screen environment-variables
我virtualenv
用来在环境“1.0”和“2.0”之间切换。
我screen
用来管理终端。
当我在一个环境中工作时,我希望所有新screen
窗口都从这个环境开始。
可以 bash 指示screen
在新的 shell 实例上设置环境变量,所以我可以创建一个类似于这个的别名:
alias one='export PRJCT=1.0; screen-magic-setenv PRJCT=1.0; workon 1.0'
alias two='export PRJCT=2.0; screen-magic-setenv PRJCT=2.0; workon 2.0'
Run Code Online (Sandbox Code Playgroud)
然后在~/.bashrc
电话中:
[[ -z $PRJCT ]] || workon $PRJCT # switch to project if set
Run Code Online (Sandbox Code Playgroud)
我知道我可以命令screen
在如下所示的新 shell 上设置环境变量,但它没有帮助,因为它不能在别名中工作:
:setenv PRJCT
2.0
Run Code Online (Sandbox Code Playgroud)
如果我理解正确,您的问题是您找不到使用 shell 别名直接与屏幕交互的方法。相反,您可以使用 将命令发送到正在运行的屏幕-X
,setenv
当然包括,例如:
$ screen -list
There are screens on:
25216.pts-45.antiriad (Attached)
$ screen -S 25216 -X setenv PRJCT 2.0
Run Code Online (Sandbox Code Playgroud)
然后设置该变量,并且从那时起将被子 shell 继承,与:setenv
. 如果您使用-S
设置合理的不同会话名称,您的任务可能会更容易。该变量STY
保存当前屏幕会话。
如果您仅screen -X setenv PRJCT 2.0
在屏幕会话中运行,省略-S
,它将应用于该屏幕实例。
alias one='export PRJCT=1.0; screen -X setenv PRJCT 1.0; workon 1.0'
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
7193 次 |
最近记录: |