Bash的wait命令是否支持-n选项?该选项是否为新增特性?
Bash
wait -n无效选项报错解答 特性版本说明
wait命令的-n选项是Bash 4.3版本才正式加入的功能,作用是等待任意一个后台子进程退出并返回其退出状态码。低于4.3版本的Bash环境无法识别该参数,就会抛出你遇到的报错。
相关信息对照
你使用的脚本逻辑如下:
# 等待coord或worker任意子进程退出 # 调用jobs命令清理其他测试遗留的已结束进程记录,避免误等待 jobs &> /dev/null wait -n
对应的报错信息为:
wait: -n: invalid option
适配方案
- 执行
bash --version查看当前环境的Bash版本,确认是否低于4.3。如果允许升级Bash到4.3及以上版本,即可直接兼容wait -n语法。 - 若无法升级Bash,可以用循环检测后台进程的方式实现相同逻辑:
# 低版本Bash替代wait -n的实现 while true; do # 检测是否存在运行中的后台子进程,不存在则退出循环 jobs -r | grep -q . || break sleep 0.1 done
内容的提问来源于stack exchange,提问作者ohyeah
相关产品推荐
相关产品推荐

