make bash脚本等待使用和清空命名管道的信号

时间:2013-12-04 18:58:09

标签: bash signals

我正在尝试使用bash脚本等待使用和清空命名管道的信号。我最喜欢这种方法:

while : ; do sleep 1 ; done

因为这是一种忙碌的等待

我试试:

trap 'echo SIGNAL!' INT
while true;
do
  read
  echo 'AFTER READ'
done < /tmp/fifo

其中/ tmp / fifo是空命名管道

我得到了:

bash: /tmp/fifo: Interrupted system call
SIGNAL!

bash脚本中止。如何在接收信号时使脚本保持循环? 感谢

1 个答案:

答案 0 :(得分:3)

展开this answer

trap 'echo SIGNAL!; kill $(jobs -p)' INT
read < /tmp/fifo &
wait