我的目标是打开一个新的terminal窗口,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 '"
这工作,达到我的主要目标。
问题是,如果用户试图通过Control-C在等待“Press ENTER …”提示时退出脚本,则会执行命令的其余部分(例如,远程计算机上出现hello.txt)。
任何想法,为什么发生这种情况,以及如何避免它?
谢谢!
Ctrl C杀死read
命令,而不是所有的命令,所以下一个命令被执行。 您可以使用&&
运算符来表示只有当前的命令成功退出时才应该执行下一个命令。
gnome-terminal -t "MyWin" -x bash -c "ssh -X $USER@$REMOTE_IP 'echo \"Press ENTER to continue\" ; read JUNK && echo \"HELLO\" > hello.txt ; bash '"