1

次の bash スクリプトを使用していますが、いくつかの問題があります。

  1. 2 番目の xterm は、最初の xterm が終了するまで起動しません
  2. 単に $exit ではなく、quit で起動した各 xterm を強制終了する必要があります
  3. スクリプトを実行する bash ターミナルは、両方の xterm が強制終了されるまでロックされます
  4. xterm と ssh をサーバーに起動した後にディレクトリを変更したい

    read -s -p "PW? " password
    
    xterm -bg red -fg yellow -hold -e sshpass -p $password ssh user@server1
    
    xterm -bg blue -fg yellow -hold -e sshpass -p $password ssh user@server2
    

どんな助けでも大歓迎です。ありがとう。

提供されたソリューションにより、完全に機能する次のものを作成できました。

xterm -bg red -fg yellow -e sshpass -p $password ssh -Y -t user@server1 'cd /home/user/work; $SHELL -i' &
xterm -bg blue -fg yellow -e sshpass -p $password ssh -Y -t user@server2 'cd /home/user/work/; $SHELL -i' &
4

1 に答える 1

2

質問 (1) と (3) は、バックグラウンドで xterms を起動することによって解決されます。

xterm -bg red  -fg yellow -hold -e sshpass -p $password ssh user@server1  &
xterm -bg blue -fg yellow -hold -e sshpass -p $password ssh user@server2  &

質問 (4)、 でもっと興味深いことができますがexpect、これはできるはずです (xterm と sshpass ではなく、ssh でのみテストされています)。

xterm -bg blue -fg yellow -hold -e sshpass -p $password ssh -t user@server2 'cd /var/log; $SHELL -i'  &

SHELL が-i「対話型シェル」を意味することを理解していることを前提としています。ssh へのオプション
の追加に注意してください。-t

于 2014-12-19T16:54:38.883 に答える