You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本通过终端执行命令无法并行,需记录各命令退出码到日志

问题原因

当前写法中&的作用范围仅为紧邻的echo $? >> "$log_file"命令,前面的npm测试命令始终在前台串行执行,因此无法达到并行效果。

修正方案

将单条npm执行+退出码写入的逻辑包裹在子shell中,再将整个子shell丢到后台运行即可:

# 第一条测试任务后台运行
(ENV=prod npm run SettingsSuite -- --runid Prod_E2E_$BUILD_NUMBER --APPNAME Prod_E2E --squad ops --track coreServices; echo "SettingsSuite exit code: $?"  >> "$log_file") &
# 第二条测试任务后台运行
(ENV=prod npm run InventorySuite -- --runid Prod_E2E_$BUILD_NUMBER --APPNAME Prod_E2E --squad ops --track coreServices; echo "InventorySuite exit code: $?"  >> "$log_file") &
# 等待所有后台任务执行完成
wait

上述写法还增加了命令标识前缀,方便后续排查日志时快速区分不同任务的退出码。

内容的提问来源于stack exchange,提问作者sandeep bagoria

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.24 13:54:02