Declaração simples se / else não funcionar [duplicado]

0

Eu tenho tentado por muito tempo para obter este bit básico de código para trabalhar em um shell script, mas sem sucesso, o código não funciona!

read dec
if [ dec="Y"]||[dec="Y"]||[dec="y" ]; then
let repeat=1;
else
let repeat=0;
fi
done
    
por InsertRealName 28.01.2016 / 22:26

1 resposta

4

Você precisa de espaços em ambos os lados dos caracteres [ e ] , pois são comandos, não operadores.

Você também não precisa de let e precisa ler dec como variável (ou seja, $dec ).

Você também pode colocar em maiúsculas a variável apenas para o teste, portanto, não é necessário testar os resultados superiores (duas vezes!) e minúsculos.

Você também não precisa do done no final, já que não há loop.

read dec
if [[ "${dec^}" = "Y" ]]; then
  repeat=1
else
  repeat=0
fi
    
por 28.01.2016 / 22:31