我正在写一个bash文件来捕获来自另一个程序的信号:
trap "echo Signal" SIGUSR1
while :
do
sleep 1
done
COMMAND 1
COMMAND 2
COMMAND 3
.........
我想在捕获信号后退出while循环,以便启动COMMAND 1,2,3等等。
有什么建议吗? 谢谢你的时间。
此致
基督教
答案 0 :(得分:1)
使用变量
finished=0
trap 'finished=1;echo Signal' SIGUSR1
while ! ((finished))
do
sleep 5
echo sleeping
done
echo done
答案 1 :(得分:1)
将命令放入函数中,然后使用陷阱中的函数:
#!/bin/bash
trap 'trp' SIGUSR1
trp() {
COMMAND 1
COMMAND 2
COMMAND 3
.........
}
while :
do
sleep 1
done