比較演算子を使用できますか?

比較演算子を使用できますか?

電流量、距離(フィート)、許容電圧降下を考慮して必要な電線ゲージを計算する関数を構築しています。

この値が与えられたら、「円形小麦」を計算することができ、そこから次のようになります。AWGの要件。私は丸い小麦を彼らの尊敬された仕様と比較する大きな声明を作り始めましたが、これは正しいツールだとif elif思います。case

数字を比較するケースが見つからなかったので、次のようにできるかどうか疑問に思います。

what.gauge () {

    let cmils=11*2*$1*$2/$3
    let amils=17*2*$1*$2/$3


    case $cmils in

        320-403)
            cawg="25 AWG"
            ;;
        404-509)
            cawg="24 AWG"
            ;;
        510-641)
            cawg="23 AWG"
            ;;

        etc...

}

ベストアンサー1

POSIXシェル

算術テストを探していますが、ケースは算術を実行しないので、これはif-then自然なアプローチのようです。

if [ "$cmils" -lt 320 ]
then
        cawg="??"
elif [ "$cmils" -le 403 ]
then
        cawg="25 AWG"
elif [ "$cmils" -le 509 ]
then
        cawg="24 AWG"
elif [ "$cmils" -le 641 ]
then
        cawg="23 AWG"
fi

クリティカルのみ発生

私はポータブルソリューションを好むが、一部の人々はbashの算術構文が好きです。

if ((cmils < 320))
then
        cawg="??"
elif ((cmils <= 403))
then
        cawg="25 AWG"
elif ((cmils <= 509))
then
        cawg="24 AWG"
elif ((cmils <= 641))
then
        cawg="23 AWG"
fi

POSIX構文よりも強力ですが、脆弱です。理由を理解するには、設定後にこのコードを試してくださいcmils=cmils

おすすめ記事