如何在每个屏幕名称的基础上设置环境变量

如何在每个屏幕名称的基础上设置环境变量

我在我的系统上使用多个屏幕,我为我可能正在处理的每个分支使用单独的会话。现在我想根据屏幕名称设置环境变量(我通过分支路径命名屏幕)。我已经尝试过这个~/.screenrc

screen -t "ABC-1234" bash -ic 'OUTPUTROOT=/home/me/src/NextGen/branches/ABC-1234/bin'
screen -t "ABC-1234" bash -ic 'SVN_ROOT=/home/me/src/NextGen/branches/ABC-1234'
screen -t "DEF-5678" bash -ic 'OUTPUTROOT=/home/me/src/NextGen/branches/DEF-5678/bin'
screen -t "DEF-5678" bash -ic 'SVN_ROOT=/home/me/src/NextGen/branches/DEF-5678'

但它似乎不起作用,如果我的屏幕被称为“ABC-1234”或“DEF-5678”并且我使用Ctrl-a c...打开一个新窗口,则环境变量不会被设置

答案1

只需从 shell 脚本启动屏幕即可:

#!/bin/sh
SVN_ROOT=/home/me/src/NextGen/branches/ABC-1234 OUTPUTROOT=$SVN_ROOT/bin screen -dm -t "ABC-1234"
SVN_ROOT=/home/me/src/NextGen/branches/DEF-5678 OUTPUTROOT=$SVN_ROOT/bin screen -dm -t "DEF-5678" 

相关内容