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
で途中で終了しよう!