Compare duas strings em um script de shell [duplicado]

0

Meu script precisa de dois argumentos. Eu quero esconder a mensagem de erro se alguém chama o script com

script.sh --help

então eu cansei disso:

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

Mas recebo o erro

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

O que está errado?

    
por rubo77 30.07.2014 / 15:13

1 resposta

1

o parâmetro -ne é válido apenas para números, você tem que usar != para comparação de strings.

Isso funciona:

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

Tags