使用“sem”时计算失败的命令

使用“sem”时计算失败的命令

我想使用并行运行多个 shell 脚本sem并获取失败命令的数量。但是,它们的退出代码始终为零:

sem bash -c 'exit 0'
echo $? # => 0
sem bash -c 'exit 1'
echo $? # => 0
sem --wait
echo $? # => 0

我怎样才能得到计数?

答案1

你不能。sem不与进程通信,因此无法获取退出值。

如果您想要这样,请改用parallel

$ parallel "bash -c 'exit '{}" ::: 0 1 2 3 4 0
$ echo $?
4

这一直有效到 100。101 表示 > 100 个作业失败。

如果失败的作业比这个多,请使用--joblog列中的失败数并进行计数Exitval

相关内容