2

我的目标是打开一个新的终端窗口,在该窗口中通过 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 '"

这有效并实现了我的主要目标。

问题在于,如果用户在等待“Press ENTER...”提示时尝试通过 Control-C 退出脚本,则会执行命令的其余部分(例如,远程计算机上出现 hello.txt)。

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

谢谢!

4

1 回答 1

3

CtrlC杀死read命令,而不是那里的所有东西,所以下一个命令被执行。您可以使用operator 表示只有在当前命令成功退出&&时才应执行下一个命令。

gnome-terminal -t "MyWin" -x bash -c "ssh -X $USER@$REMOTE_IP 'echo \"Press ENTER to continue\" ; read JUNK && echo \"HELLO\" > hello.txt ; bash '"
于 2011-08-10T17:48:32.553 回答