入れ子になった if 構成で fi を使用して各 if ブロックを閉じるのは影響しますか?

入れ子になった if 構成で fi を使用して各 if ブロックを閉じるのは影響しますか?

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から引用すると、次のようになります。

iffiBashでは、ifブロックの終わりを示す同伴項目でそれぞれを区切る必要はありません。

これは2つの方法で理解できます。

間違った方法:

Bashには、「各要素は、ifブロックの終わりを示すコンパニオン要素で区切る必要がありますif。」のようなものはありません。fi

正しい方法:

bashには、ifブロックの終わりを示すコンパニオンとしてそれぞれを分離するif必要があるため、[dangling else ambiguity]のようなものはありません。fi

おすすめ記事