Problema com a sintaxe bash na linha de comando

0

Estou tentando testar uma instrução if simples, executando-a a partir da linha de comando, mas o bash não a executa.

adicione uma variável
~$ myVar = 23
executar uma declaração condicional
~$ if [$myVar -eq 23] then echo "myVar is 23" fi

Bash não executará isso, o que estou perdendo aqui?

    
por Michael Coleman 06.12.2014 / 03:49

1 resposta

5

Para declarar um espaço variável, importe:

myVar = 23

Faltam ponto e vírgula e o espaçamento entre os colchetes é importante:

if [$myVar -eq 23] then echo "myVar is 23" fi

Deve ser:

myVar=23

E:

if [ $myVar -eq 23 ]; then echo "myVar is 23"; fi

Também pode ser escrito sem ponto-e-vírgula, se estiver escrito em várias linhas:

if [ "$myVar" -eq 23 ]
   then
   echo '$myVar is' "$myVar"
fi

E geralmente é sugerido usar aspas duplas nas variáveis.

As aspas simples são usadas para strings literais.

Esta também é uma sintaxe válida com um ponto e vírgula:

if [ "$myVar" -eq 23 ]; then
   echo '$myVar is' "$myVar"
fi
    
por 06.12.2014 / 04:04

Tags