2014-01-17 24 views
0

在办公室,我们有一个共享用户,我们用了一半的时间。我试图让屏幕自动加载我在使用共享用户时为自己创建的自定义bashrc文件。到目前为止,我有这个效果很好:GNU屏幕源为新窗口定制bashrc文件

alias screen ='screen -d -R -S redhar -c /home/redhar/.screenrc bash -rcfile'\''/ home/goldenuser/.bashrc_redhar'\ '''

这适用于它创建的第一个窗口。当我创建一个新窗口时出现问题。无论如何要得到一个新创建的窗口来自动使用相同的rcfile?

到目前为止,我已经考虑了以下选项,但是我正在寻找一种更简化的解决方案,沿着我忽略的漏掉的GNU屏幕配置选项或其他内容。我提出的解决方案:

在常规的.bashrc它就会自动加载:

if [[ $SCREENFLAG == "REDHAR" ]] 
then 
    . /home/goldenuser/.bashrc_redhar 
    exit 
fi 

设置别名:

alias screen='SCREENFLAG=REDHAR screen -d -R -S redhar -c /home/redhar/.screenrc bash -rcfile '\''/home/goldenuser/.bashrc_redhar'\'''

+0

你可以检查'TERM'环境变量的值 - 它通常在'screen'会话中设置为'screen',其外部是'vt100','xterm'或其他。 – twalberg

+0

我认为,但由于它是共享用户,因此多人可能会使用屏幕。 – fidesachates

+0

啊,所以你希望它只改变* you *的行为,当你使用'screen',而不是其他人...这有点棘手......但我想你可以设置一个不同的环境变量(一个没有人会设置),然后你开始'screen',你的'.bashrc'检查这个变量是否存在... – twalberg

回答

1

发现的解决方案是创建与

bash -rcfile /home/goldenuser/.bashrc_redhar 
文件

然后在.screenrc中将您的shell命令设置为

shell='<path to file created above>' 
+0

实际上,它的作用类似于'shell/home/goldenuser/.bashrc_redhar',其中.bashrc_redhar是一个通用的可执行脚本 –