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

Linux 在这个脚本中等待的行为如何?,linux,bash,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 我知道 作为o/p 问题: 当我向这个脚本发送SIGINT时 为什么它会终止?我知道这是因为结尾的等待语句

我有这个:

#!/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
我知道

作为o/p

问题:

当我向这个脚本发送SIGINT时

为什么它会终止?我知道这是因为结尾的等待语句。但是那里发生了什么事

Bash通过
wait
内置,接收已设置陷阱的信号将 使
wait
内置程序立即返回并显示退出状态 大于128,紧接着执行陷阱

:

Bash通过
wait
内置,接收已设置陷阱的信号将 使
wait
内置程序立即返回并显示退出状态 大于128,紧接着执行陷阱


但可能的副本不是完全相同的副本。我还想问wait命令在这里的表现如何。来自bash初学者指南第139页:“当Bash通过wait内置程序等待异步命令时,接收到已设置陷阱的信号将导致wait内置程序立即返回,退出状态大于128,然后立即执行陷阱。“顺便说一句:使用bash,您不需要使用外部命令
seq
为循环编写那种
:为{1..10}
中的i编写
。这是一个可能的副本,但不是一个完全相同的副本。我还想问wait命令在这里的表现如何。来自bash初学者指南第139页:“当Bash通过wait内置程序等待异步命令时,接收到已设置陷阱的信号将导致wait内置程序立即返回,退出状态大于128,然后立即执行陷阱。“顺便说一句:使用bash,您不需要使用外部命令
seq
循环编写那种
:为{1..10}
中的i编写
。这是一个例子。
kill -2 <pid>
0 0