戻りコード(終了コードではない)をキャプチャする方法

戻りコード(終了コードではない)をキャプチャする方法

特定のプロセスを実行し、ジョブの状態に応じて数値を返すスクリプトがあります。スクリプトはバックグラウンドでトリガーされます。

つまり

ksh -x myscript.sh 20150102 &

私の質問は、バックグラウンドプロセスの戻りコードを取得する方法です。終了コードなどの戻りコードを取得する方法はありますか?$?

ベストアンサー1

使用wait:

# Start the job:
ksh -x myscript.sh 20150102 &

# Save its process ID
job_pid=$!

# Do some other stuff in the meantime
asdf ghjk
zxcv qwer

# Later, when you want to know what its exit status was:
wait $job_pid
if [ $? -ne 0 ]; then
    echo "Something may have gone wrong" >&2
else
    echo "The world is perfect." >&2
fi

この場合、「リターンコード」と「終了コード」は同義語だと思います。これらの用語が異なる意味を持っているという意味なら、私が誤解したのですが、違いが何なのか想像できませんね。

おすすめ記事