2

私の目標は、新しいターミナル ウィンドウを開き、そのウィンドウでリモート マシンに SSH 接続し、ユーザーに続行するように促してから、コマンドを実行することです。私は現在持っています:

gnome-terminal -t "MyWin" -x bash -c "ssh -X $USER@$REMOTE_IP 'echo \"Press ENTER to continue\" ; read JUNK ; echo \"HELLO\" > hello.txt ; bash '"

これは機能し、私の主な目標を達成します。

問題は、ユーザーが「Press ENTER...」プロンプトで待っている間に Control-C でスクリプトを終了しようとすると、コマンドの残りが実行されることです (たとえば、hello.txt がリモート マシンに表示されます)。

なぜこれが起こっているのか、それを回避する方法について何か考えはありますか?

ありがとう!

4

1 に答える 1

3

CtrlCそこにあるすべてではなく、readコマンドを強制終了するため、次のコマンドが実行されます。&&operator を使用して、現在のコマンドが正常に終了した場合にのみ次のコマンドを実行する必要があることを示すことができます。

gnome-terminal -t "MyWin" -x bash -c "ssh -X $USER@$REMOTE_IP 'echo \"Press ENTER to continue\" ; read JUNK && echo \"HELLO\" > hello.txt ; bash '"
于 2011-08-10T17:48:32.553 に答える