0

現在のマシン上にあるかどうかに関係なく、リモート シェルを生成するか、ローカル シェルを実行するスクリプトを作成しました。

#!/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 オプションなどを使用して試しました。何か案は ?

4

1 に答える 1

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 ではなく、スクリプトに問題があります。

于 2010-04-05T20:01:45.270 に答える