gpt4 book ai didi

Linux Bash 脚本 : Command Executed After Control-C

转载 作者:太空狗 更新时间:2023-10-29 12:07:11 26 4
gpt4 key购买 nike

我的目标是打开一个新的终端窗口,在该窗口中通过 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 退出脚本,则执行命令的其余部分(例如,hello.txt 出现在远程机器上).

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

谢谢!

最佳答案

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

关于Linux Bash 脚本 : Command Executed After Control-C,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7015316/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com