elseブロック(参照:https://stackoverflow.com/a/15328027/1942997)、これはどのような影響があるのか、それともスタイルの問題なのか疑問に思います。
サンプルコード1:
if [ condition ]; then
echo "Not nested, condition 1 true"
if [ other_condition ]; then
echo "Nested, condition 2 true"
else
echo "Nested, condition 2 false"
fi
fi
サンプルコード2(最後のfiがありません):
if [ condition ]; then
echo "Not nested, condition 1 true"
if [ other_condition ]; then
echo "Nested, condition 2 true"
else
echo "Nested, condition 2 false"
fi
私は別の言語で中かっこを使用して各ifブロックを閉じるのに慣れているので、bashスクリプトでこの動作を維持するのは合理的だと思います。私が考えることができる唯一の影響は、読みやすくするためにスクリプトファイルのサイズを少し増やすことです。
答え1
内部を閉じない場合はbashとマークしましたif
。
SO Qから引用すると、次のようになります。
if
fi
Bashでは、ifブロックの終わりを示す同伴項目でそれぞれを区切る必要はありません。
これは2つの方法で理解できます。
間違った方法:
Bashには、「各要素は、ifブロックの終わりを示すコンパニオン要素で区切る必要があります
if
。」のようなものはありません。fi
正しい方法:
bashには、ifブロックの終わりを示すコンパニオンとしてそれぞれを分離する
if
必要があるため、[dangling else ambiguity]のようなものはありません。fi