sem
複数のシェルスクリプトを並列に実行し、失敗したコマンドの数を取得したいと思います。ただし、終了コードは常に0です。
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
。