bash:テスト:いいえ:整数式が必要です。

bash:テスト:いいえ:整数式が必要です。

私はこの行を信じる

if test "$suman_inspect" -eq "yes"; then

このエラーが発生します(逐語的に):

bash: test: no: integer expression expected

testオンラインでこの例を見たので、上記の式を定式化しました。

 if test "$#" -eq "0"; then

パラメータ配列の長さがゼロであることを確認するテストです。

では、この2つの検査に問題があるのでしょうか?最初のものはうまくいきますが、2番目のものはうまくいきません。

答え1

これは-eq整数比較のためのものです。文字列比較の場合==(または=)。したがって、以下を使用する必要があります。

if test "$suman_inspect" == "yes"; then
    # do something
fi

不平等演算子にも同じ区別が適用されます(、、、、およびは-gt数値比較に使用され、、、およびは文字列比較に使用されます)-lt-ge-le-ne><>=<=!=

両方;[ expression ]代わりに使用することもできます。test expression同義語

関連情報