Você está fazendo:
[ "$var" -ne password ]
-ne
(não igual) é um operador inteiro de [
, ou seja, ele espera inteiros em ambos os lados.
Mas você tem var=":"
no início e apesar de estar read
-ing entrada do usuário e colocar isso em var
, presumivelmente a entrada não é um inteiro, levando à mensagem de erro.
Em qualquer caso, se fosse um inteiro, a verificação falharia, porque password
é uma string para começar.
Se você quiser comparar strings por igualdade, o operador é =
:
[ "$var" = password ]
Não-igualdade:
[ "$var" != password ]