シェルスクリプトで整数比較の論理OR演算を行うにはどうすればいいですか? 質問する

シェルスクリプトで整数比較の論理OR演算を行うにはどうすればいいですか? 質問する

簡単な状態チェックをしようとしていますが、うまくいかないようです。

$#等しいか0、より大きい1場合は、こんにちはと言います。

次の構文を試しましたが、成功しませんでした。

if [ "$#" == 0 -o "$#" > 1 ] ; then
 echo "hello"
fi

if [ "$#" == 0 ] || [ "$#" > 1 ] ; then
 echo "hello"
fi

ベストアンサー1

これは動作するはずです:

#!/bin/bash

if [ "$#" -eq 0 ] || [ "$#" -gt 1 ] ; then
    echo "hello"
fi

他のシェルでも異なるかどうかはわかりませんが、<、> を使用する場合は、次のように二重括弧で囲む必要があります。

if (("$#" > 1))
 ...

おすすめ記事