Пользовательский скрипт в .screenrc - PullRequest
0 голосов
/ 03 марта 2010

Я создал скрипт, который порождает удаленную оболочку или запускает локальную оболочку, независимо от того, находится она на текущей машине или нет:

#!/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, но я не могу его запустить, мой .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 Ответ

1 голос
/ 06 апреля 2010

Я использую следующее:

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

И это прекрасно работает. Для чего нужны 1 и 2? Вы пытались удалить их?

Не могли бы вы попробовать использовать другую программу, кроме spawnshell? Может быть, запуск Vim и Emacs? Если они работают, то виноват ваш скрипт, а не ваш screenrc.

...