【问题标题】:Linux Bash Script: Command Executed After Control-CLinux Bash 脚本:在 Control-C 之后执行的命令
【发布时间】:2011-08-10 17:43:39
【问题描述】:

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

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

谢谢!

【问题讨论】:

    标签: linux bash control-c


    【解决方案1】:

    CtrlC 杀死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 '"
    

    【讨论】:

      猜你喜欢
      • 2014-12-13
      • 1970-01-01
      • 2015-09-03
      • 1970-01-01
      • 1970-01-01
      • 2022-06-18
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多