子シェルの呼び出し

子シェル呼び出しのサンプルです。sh をもちいて外部プロセスとして実行しています。

parent.sh

#!/bin/sh
echo '親シェル: 実行開始'

echo '親シェル: 子シェル呼び出し'
sh ./child.sh
RESULT=$?

if [ ${RESULT} -ne 0 ]; then
  echo '親シェル: 子シェルの呼び出し結果はエラー('${RESULT}')でした。'
  echo '親シェル: 異常終了'
  exit 101
fi

echo '親シェル: 正常終了'
exit 0

child.sh

#!/bin/sh
echo '子シェル: 実行開始'

echo '子シェル: 戻り値をセットします'
EXITCODE=3

echo '子シェル: 実行終了('${EXITCODE}')。'

exit ${EXITCODE}
ポイント
  • 正常系は 0 にするのが無難なようです。
  • 正常系 (0) 以外の値が戻れば異常と扱うようなつくりが良いかと思います。