Environment
- bash
Problems
- 関数内でexitを読んだ際、どのような挙動になるのかを知りたい。
- 関数の実行のみが終了するのか、ファイルの実行が終了するのか
- 終了コードはどのようになるのか
How to solve
確認したところ、以下のような挙動だった。
- ファイルの実行が終了する
- プロセスの終了コードは、
exit
で指定した終了コードとなる
Description
cat << EOF > a.sh
exit_func () {
exit 0
}
exit_func
echo 'execute here!'
EOF
sh ./a.sh
echo $?
output
0
cat << EOF > b.sh
exit_func_254 () {
exit 254
}
exit_func_254
echo 'execute here!'
EOF
sh ./b.sh
echo $?
output
254
exit
はプロセスを終了させるものなので、よく考えれば当然の結果かもしれない。