「予想される整数式」を得たが、その理由がわからない。 [閉じる]

「予想される整数式」を得たが、その理由がわからない。 [閉じる]
#!/usr/bin/bash
for (( i=0; i<=10; i++  ))
 do 
if [ "$i" -eq 3 ] || [ "$1" -eq 7 ]
 then
continue
fi
  echo "$i"
done

これを実行すると、私は得る。

file: line 4: [: : integer expression expected
0
file: line 4: [: : integer expression expected
1
file: line 4: [: : integer expression expected
2
file: line 4: [: : integer expression expected
4
file: line 4: [: : integer expression expected
5
file: line 4: [: : integer expression expected
6
file: line 4: [: : integer expression expected
7
file: line 4: [: : integer expression expected
8
file: line 4: [: : integer expression expected
9
file: line 4: [: : integer expression expected
10

...理由がわかりません。

答え1

引数なしでスクリプトを呼び出す場合、コマンドは次のようになります。

[ "$1" -eq 7 ]

次のように評価されます。

[ "" -eq 7 ]

これは数値演算子と同様にエラーです-eq。オペランドには2つの整数が必要です。空の文字列は整数ではありません。

引数を使用してスクリプトを呼び出さずに代わりiの値を比較したい場合は、7次のことができます。

[ "$i" -eq 7 ]

代わりに:

[ "$1" -eq 7 ]

関連情報