当在Bash脚本中使用等待命令(wait)时,如果等待的子进程提前返回并带有非零(非成功)的退出代码,那么等待命令也会返回相应的退出代码。
以下是一个示例脚本,其中包含了一个子进程并使用等待命令等待其完成:
#!/bin/bash
# 子进程
sub_process() {
sleep 5
exit 145
}
# 启动子进程
sub_process &
pid=$!
# 等待子进程完成
wait $pid
exit_code=$?
echo "子进程退出代码为: $exit_code"
在上面的脚本中,子进程使用sleep
命令暂停5秒,并使用exit
命令退出并返回145作为退出代码。然后,主进程使用等待命令等待子进程完成,并将其退出代码存储在exit_code
变量中,最后打印出来。
运行上述脚本时,你将看到输出为:
子进程退出代码为: 145
这证明等待命令返回了子进程的退出代码145。