Shell 如何使GNU screen在每次创建新窗口时运行命令或脚本?

Shell 如何使GNU screen在每次创建新窗口时运行命令或脚本?,shell,gnu-screen,Shell,Gnu Screen,我正在尝试编写一个脚本,使call virtualenvwrapper的workon命令根据屏幕会话名称跳转到现有的virtualenv 我已经设法让它在会话启动时工作,但我希望每次创建窗口时都能运行命令,而我找不到钩子或类似的东西 屏幕是否允许每次在会话中创建窗口时都运行命令?尝试将逻辑放入~/.profile(如果使用deflogin on设置)或~/.mkshrc(或类似文件,取决于shell)文件中。大概是这样的: if test -n "$STY"; then # we

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

我已经设法让它在会话启动时工作,但我希望每次创建窗口时都能运行命令,而我找不到钩子或类似的东西


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

尝试将逻辑放入
~/.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.shorthostname
pts-9.shorthostname
(取决于操作系统)的名称,如果没有使用
-S

太棒了,应该这样做了,我会尝试一下(我使用zsh,所以这将进入我的.zshrc)。非常感谢!