erro de sintaxe aritmética na comparação de strings

2

Eu escrevi um script de shell que leva o nome do arquivo como parâmetro, por exemplo, user / test.txt. Eu quero fazer este parâmetro de arquivo opcional se o usuário não quiser fornecer o nome do arquivo que ele / ela pode fornecer como "Nenhum"

Dentro do script, estou apenas verificando se o parâmetro filename contém "None"

if [ $filename -eq "NONE" ];then
cmd;
fi

Quando "None" é passado como script de parâmetro funciona bem, mas quando o usuário / test.txt é passado eu recebo abaixo a mensagem de erro que eu não quero imprimir no console

arithmetic syntax error

Alguém pode ajudar?

    
por chhaya vishwakarma 05.08.2015 / 15:23

1 resposta

7

[ bla bla bla ] é equivalente a test bla bla bla .

De man test

   STRING1 = STRING2
          the strings are equal

   STRING1 != STRING2
          the strings are not equal

   INTEGER1 -eq INTEGER2
          INTEGER1 is equal to INTEGER2

Portanto, você precisa de = não -eq .

    
por 05.08.2015 / 15:26