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
変数が数値であることを確認するために演算子を使用します-eq
。stderr
数値でない場合は、出力を抑制する必要があります。
変数に整数が含まれている場合、case
レイアウトフォームの範囲が評価されます。式は$(( some comparison ))
true(1)またはfalse(0)として評価されるため、指定された範囲のリストをテストできます。