特定のプロセスを実行し、ジョブの状態に応じて数値を返すスクリプトがあります。スクリプトはバックグラウンドでトリガーされます。
つまり
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
この場合、「リターンコード」と「終了コード」は同義語だと思います。これらの用語が異なる意味を持っているという意味なら、私が誤解したのですが、違いが何なのか想像できませんね。