在当前命令/脚本之后执行后续命令/脚本 ^C

8 bash shell scripting

我没有找到我的问题的答案。在使用 ^C 退出当前脚本后,我需要能够执行 shell 命令/bash 脚本。

换句话说:我有一个正在运行的脚本,在我 ^C 之后我想要另一个脚本或命令立即启动。如何实现这一目标?

我试过./first.sh; echo something没有运气。

我可以尝试同时运行脚本,其中一个将等待/监听另一个完成,然后执行清理命令并退出。但是我需要一种在一个命令中启动它们的方法。

解决这个问题最合适的方法是什么?

谢谢

编辑: 我想我已经明白了...从第一个脚本开始,我可以在末尾使用 & 启动另一个脚本,以便它进入后台。似乎与 ^C 从第一个退出一起工作(第二个连续工作)。关于更好的解决方案的任何建议?

Fre*_*ihl 8

./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)