2011-08-10 53 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 '"