每次创建新窗口时,如何让GNU屏幕运行命令或脚本?

时间:2013-12-26 13:21:02

标签: shell gnu-screen

我正在尝试编写一个脚本,使GNU screen调用virtualenvwrapper的workon命令,根据屏幕会话名称跳转到现有的virtualenv。

我已经设法在会话开始时使其工作,但我希望每次创建窗口时都能运行命令,而且我找不到挂钩或任何类似的挂钩。

每次在会话中创建窗口时,屏幕是否允许运行命令?

1 个答案:

答案 0 :(得分:1)

尝试将逻辑放入~/.profile(如果使用deflogin on设置)或~/.mkshrc(或类似,具体取决于您的shell)文件。像这样:

if test -n "$STY"; then
        # we are inside GNU screen
        screenpid=${STY%%.*}
        screenname=${STY#*.}
        # do your magic
fi

在这种情况下,$screenname将包含传递给GNU屏幕的-S选项的名称,或者ttyp0.shorthostnamepts-9.shorthostname(取决于操作系统)如果没有使用-S