Linux Bash脚本:在Control-C之后执行的命令

时间:2011-08-10 17:43:40

标签: linux bash control-c

我的目标是打开一个新的终端窗口,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出现在远程机器上)。

对于为什么会发生这种情况以及如何避免它的任何想法?

谢谢!

1 个答案:

答案 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 '"