比较 shell 脚本中的两个字符串

比较 shell 脚本中的两个字符串

我的脚本需要两个参数。如果有人使用以下命令调用脚本,我想隐藏错误消息

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

相关内容