2011-08-10 56 views
2

我的目標是打開一個新的終端窗口,SSH進入該窗口的遠程機器,提示用戶繼續,然後執行命令。我目前有:Linux Bash腳本:控制後執行的命令-C

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

這工作,實現我的主要目標。

問題是,如果用戶在等待「Press ENTER ...」提示時嘗試通過Control-C退出腳本,則會執行命令的其餘部分(例如,hello.txt出現在遠程機)。

有關爲什麼會發生這種情況以及如何避免它的任何想法?

謝謝!

回答

3

按Ctrlç殺死read命令,而不是樣樣有,所以下一個命令被執行。您可以使用&&運算符來表示僅噹噹前的成功退出時才應該執行下一個命令。

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