シェルスクリプトで2つの文字列を比較する

シェルスクリプトで2つの文字列を比較する

私のスクリプトには2つのパラメータが必要です。誰かが次を使用してスクリプトを呼び出すと、エラーメッセージを隠したいと思います。

script.sh --help

だから私はこれに疲れました。

if [ $# -ne 2 ] ; then
  if [ "$1" -ne "--help" ]; then
    echo "ERROR: wrong number of parameters"
    echo
  fi
  echo "Syntax: $0 foo bar
  exit 1
fi

しかし、エラーが発生しました。

script.sh: line 10: [: --help: integer expression expected

何が問題なの?

ベストアンサー1

このパラメータは-ne数値にのみ有効で、!=文字列比較に使用する必要があります。

これは働きます:

if [ $# -ne 2 ] ; then
  if [ "$1" != "--help" ]; then
    echo "ERROR: wrong number of parameters"
    echo
  fi
  echo "Syntax: $0 foo bar
  exit 1
fi

おすすめ記事