我有这个:
#!/bin/bash
trap 'echo $? $?' SIGINT
for i in `seq 10`; do
echo hello from for
sleep 10
done &
bgproc=$!
echo bgproc is $bgproc
ps -o pid,ppid,cmd
echo "waiting now"
wait $bgproc
我做
kill -2 <pid>
并获取
0 0
as o / p
问题:
当我将SIGINT发送到此脚本时。
为何终止?我知道它是因为最后的等待声明。但是那里发生了什么?
答案 0 :(得分:3)
From the Bash Reference Manual:
当Bash通过
wait
等待异步命令时 内置,接收已设置陷阱的信号 导致wait
内置函数立即返回退出状态 大于128,紧接着执行陷阱。