我的目标是打开一个新的终端窗口,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 '"
这有效并实现了我的主要目标。
问题是如果用户在“按ENTER ...”提示符等待时尝试通过Control-C退出脚本,则执行该命令的其余部分(例如,hello.txt出现在远程机器上)。
对于为什么会发生这种情况以及如何避免它的任何想法?
谢谢!
答案 0 :(得分:3)
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 '"