쉘 스크립트에서 두 문자열 비교

쉘 스크립트에서 두 문자열 비교

내 스크립트에는 두 개의 매개변수가 필요합니다. 누군가가 다음을 사용하여 스크립트를 호출하면 오류 메시지를 숨기고 싶습니다.

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

관련 정보