标签: gnu-sem

Bash 并行执行和退出代码

我想在 bash 脚本中并行运行多个命令,但如果其中任何命令失败(返回非零退出代码),则脚本退出代码必须非零。

我尝试使用semhttps://www.gnu.org/software/parallel/sem.html):

cat >script.sh <<EOF
sem -j+0 "sleep 2; echo 1"
sem -j+0 "sleep 4; exit 1; echo 2"
sem -j+0 "sleep 6; echo 3"
sem --wait
EOF
bash script.sh; echo $?
Run Code Online (Sandbox Code Playgroud)

并只是后台进程:

cat >script.sh <<EOF
{sleep 2; echo 1} &
{sleep 4; exit 1; echo 2} &
{sleep 6; echo 3} &
wait
EOF
bash script.sh; echo $?
Run Code Online (Sandbox Code Playgroud)

在这两种情况下,总体退出代码始终为 0。

有任何想法吗?

linux parallel-processing bash shell gnu-sem

5
推荐指数
1
解决办法
1715
查看次数

标签 统计

bash ×1

gnu-sem ×1

linux ×1

parallel-processing ×1

shell ×1