这个脚本中的等待行为如何?

时间:2011-05-31 01:04:26

标签: linux bash

我有这个:

#!/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发送到此脚本时。

为何终止?我知道它是因为最后的等待声明。但是那里发生了什么?

1 个答案:

答案 0 :(得分:3)

From the Bash Reference Manual

  

当Bash通过wait等待异步命令时   内置,接收已设置陷阱的信号   导致wait内置函数立即返回退出状态   大于128,紧接着执行陷阱。