exit コマンド
お兄ちゃん!
シェルスクリプトは
書いてあることが
全部処理されるまで
終われないのかな?
そんなことはないよ
今回は処理を
途中で止める
exit を学ぼう!
exit は
現在のシェルを
終了させるよ
exit [終了ステータス]
終了ステータス は省略できるんだね?省略したらどうなるのかな?それは直前に実行していたコマンドの終了ステータスがシェルの終了ステータスになるんだ
シェルスクリプト内ではスクリプトを解釈しているシェルを終わらせるんだよね?普段操作しているシェルでも実行できるのかな?
うん、できるよ この場合は操作しているシェルが終了するから
logout とほぼ同じ動作になるよスクリプトを途中で止めるような場面ってどういうのがあるかな?
前提条件を満たしていなければ処理をせず停止する場合などがあるよ以下の例はどうだろう?
#!/bin/bash
if [ "$(whoami)" != "midori" ]
then
echo "midori ユーザで実行して下さい!" >&2
exit 1
fi
# midori ユーザだけの処理
...
whoami はユーザ名を取得だよね!実行したユーザがmidori じゃなかったらエラーメッセージを出してexit で停止してくれるんだ!test の評価を変えればexitグルーピング
( ... ) 内でexit を実行するとサブシェルが終了するよ元のシェルは終了しないので挙動の違いに気をつけよう!#!/bin/bash
(
echo "この処理は実行される"
exit # ここでサブシェルが終了する
echo "この処理は実行されない"
)
echo "この処理は実行される"
シェルの中でシェルを立ち上げているんだものねこういう場合の
exit は気をつけるよ!今回は
exit を学んだよ!シェルを途中で終了させることができるんだ!シェルスクリプトでこれ以上処理を続けたくない場合
exit で途中で終了しよう!