0または0より大きいことを確認する条件を入力する方法

0または0より大きいことを確認する条件を入力する方法

Caseを使用してこの機能を実行しようとしています。

if [[ $input -gt 0 || $input -eq 0 ]];

場合に備えて、入力がゼロより大きいか、ゼロに等しいか、さらにゼロでゼロより小さいかをテストするためにケースを置くことはできますか?

ベストアンサー1

このスクリプト例shは、変数が整数であることを確認します。

#!/bin/sh

num=$1

if [ $num -eq $num ] 2> /dev/null
then
    case 1 in
        $(($num < 0))     ) echo $num is negative.;;
        $(($num <= 100))  ) echo $num is between 0 and 100.;;
        $(($num <= 1000)) ) echo $num is between 100 and 1000.;;
        *                 ) echo $num is greater than 1000.;;
    esac
else
    echo $num is not a number.
fi

変数が数値であることを確認するために演算子を使用します-eqstderr数値でない場合は、出力を抑制する必要があります。

変数に整数が含まれている場合、caseレイアウトフォームの範囲が評価されます。式は$(( some comparison ))true(1)またはfalse(0)として評価されるため、指定された範囲のリストをテストできます。

おすすめ記事