我没有找到我的问题的答案。在使用 ^C 退出当前脚本后,我需要能够执行 shell 命令/bash 脚本。
换句话说:我有一个正在运行的脚本,在我 ^C 之后我想要另一个脚本或命令立即启动。如何实现这一目标?
我试过./first.sh; echo something
没有运气。
我可以尝试同时运行脚本,其中一个将等待/监听另一个完成,然后执行清理命令并退出。但是我需要一种在一个命令中启动它们的方法。
解决这个问题最合适的方法是什么?
谢谢
编辑:
我想我已经明白了...从第一个脚本开始,我可以在末尾使用 & 启动另一个脚本,以便它进入后台。似乎与 ^C 从第一个退出一起工作(第二个连续工作)。关于更好的解决方案的任何建议?
./script1.sh && ./script2
即如果第一个成功则执行第二个。
./script1.sh || ./script2
即如果第一个不成功则执行第二个。
或者在 script1 中,您可以捕获退出信号并生成第二个进程。像这样的东西:
s1:
#!/bin/bash
trap "./s2.sh" SIGINT
echo "hello"
sleep 100
Run Code Online (Sandbox Code Playgroud)
s2:
#!/bin/bash
echo "goodby"
Run Code Online (Sandbox Code Playgroud)
会议:
$ ./s1.sh
hello
^Cgoodby
Run Code Online (Sandbox Code Playgroud)