ネストされたifステートメントには4つのifがあります。

ネストされたifステートメントには4つのifがあります。

こんにちは友達、ネストされたifステートメントを使用してこのメ​​ソッドを書き換えるのに役立ちますか?とても感謝しています。

isDiskMounted()
{   
    if [ -d "/folder1" ] && [ -d "/folder2" ] && [ -d "/folder3" ] && [ -d "/folder4" ];then
        echo "true"
    else
        echo "false"
    fi
}

私はこのように書こうとします。

    isDiskMounted()
    {
        if [ -d "/folder1" ]; then
        echo "/folder1 klasoru bulundu" 
            if [ -d "/folder2" ]; then
        echo "/folder2 klasoru bulundu"  
                if [ -d "/folder3" ]; then
        echo "/folder3 klasoru bulundu" 
                    if [ -d "/folder4" ]; then
        echo "/folder4 klasoru bulundu" 
fi 
fi 
fi  
    echo "true"
    else
    echo "false"    
            fi
    }

ベストアンサー1

純粋にコードレビューの観点から、次のように関数を作成します。

func()
{
    for d in /folder1 /folder2 /folder3 /folder4 ; do
        if ! [ -d "$d" ] ; then
            echo "$d does not exist (or is not a directory)"
            return 1
        fi
    done
    echo "all dirs exist"
}

このループを使用すると、新しいディレクトリをリストに追加したり、関数に引数として渡したりするのが簡単になります。

(しかし、関数名が示すように、何かがインストールされていることを確認することが目標であれば、ディレクトリが存在するかどうかをテストすることに大きな利点はありません。)

おすすめ記事