1. ホーム
  2. bash

[解決済み] シェルスクリプトで整数比較のための論理和演算を行うには?

2022-03-16 11:29:58

質問

簡単な条件チェックをしようとしているのですが、うまくいかないようです。

もし $# と同じです。 0 よりも大きいか 1 であれば、こんにちはと言う。

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

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

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

解決方法は?

これでうまくいくはずです。

#!/bin/bash

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

他のシェルでは違うかもしれませんが、<、>を使いたい場合は、このように二重括弧で囲む必要があります。

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