私のコード:
#!/bin/bash
read num1
read num2
if ($num1 -eq 0) || ($num2 -eq 0)
then exit
else
echo "$(($num1+$num2))"
echo "$(($num1-$num2))"
echo "$(($num1*$num2))"
echo "$(($num1/$num2))"
fi
このコードを実行すると、次のエラーが発生します。
./txt: line 4: 1: command not found
./txt: line 4: 1: command not found
num1 = <any number>
次のように入力すると、なぜこれらのエラーが表示されるのかわかりません。num2 = <any number>
答え1
文法エラー。ダブルおよび/またはシングル/ダブルの(( ))
組み合わせが必要です。==
[ ]
これらはうまく動作します:
if [ $num1 -eq 0 ] || [ $num2 -eq 0 ] #mind the gap between brackets and vars....
または
if (($num1==0)) || (($num2==0))
二重括弧構文は、bash の算術拡張ロジックに準拠する数値にのみ使用できます。
文字列または数値変数には、単一または二重括弧を使用できます。