Unixシェルスクリプトについて質問があります。
exit 1
内部的に実行すると仮定するとif
終了しますか、それとも外部で実行されますかif
?以下は仮想の例です。
if [ "$PASSWORD" == "$VALID_PASSWORD" ]; then
if [ "$PASSWORD" -gt 10]; then
echo "password is too large!"
exit 1
fi
echo "You have access!"
exit 1
fi
ベストアンサー1
exit
呼び出しプロセスを終了します。ほとんどの場合、ループ、関数、または埋め込みスクリプト内で呼び出してもスクリプト全体が終了します。 「キャプチャされた」唯一のシェル構成は、exit
サブシェルを導入する構成です。二股に分かれたサブシェルプロセス):
(…)
サブシェルで括弧内のコマンドを実行するための基本サブシェル構造。- コマンドを実行し、その出力を文字列として返すコマンド置換構造
$(…)
(および廃止された対応する機能であるbacktick)`…`
- バックグラウンドジョブが分岐しました
&
。 - 左管路
|
そしてほとんどのシェルの右側(ATT kshとzshを除く) - 一部のシェルには、ksh、bash、zshのプロセス置換など、追加のサブプロセス構造があります
<(…)
。>(…)
while
キーワードを使用してループfor
を中断しbreak
たり、キーワードを使用して関数を中断したりできますreturn
。