.screenrc中的自定义脚本

时间:2010-03-03 17:36:51

标签: linux bash shell gnu-screen

我创建了一个生成远程shell或运行本地shell的脚本,无论它是否在当前机器上:

#!/bin/bash
# By:  benoror <benoror@gmail.com>
#
# spawns a remote shell or runs a local shell whether it's on the current machine or not
# $1 = hostname

if [ "$(hostname)" == "$1" ]; then
    bash
else
    ssh "$1.local"
fi

例如,如果我在 server1

./spawnshell.sh server1   -> runs bash
./spawnshell.sh server2   -> ssh to server2.local

我希望该脚本在GNU Screen的单独选项卡中自动运行,但我无法运行,我的.screenrc:

...
screen -t "@server1"  1   exec /home/benoror/scripts/spawnshell.sh server1
screen -t "@server2"  2   exec /home/benoror/scripts/spawnshell.sh server2
...

但它不起作用,我尝试过没有'exec',使用-X选项等等。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

我使用以下内容:

screen -t gmail alpine -i -p $HOME/.pinerc-gmail
screen -t work  alpine -i -p $HOME/.pinerc-work

这很有效。什么是1和2?你试过删除它们吗?

你可以尝试使用另一个程序而不是spawnshell吗?也许启动vim和emacs?如果那些工作,那么你的脚本是错误的而不是你的screenrc。