Bash script dá erro "comando não encontrado" em se elif instruções

4

Agora, antes de sinalizar isso como uma duplicata, por favor entenda que eu procurei por esse problema e já tentei todas as soluções sem efeito.

Meu script:

#!/bin/bash

echo "Enter the number 3"
read t1
if [$t1 -eq 3]; then
    echo "it is 3"
elif [$t1 > 3]; then
    echo "it is greater than 3"
fi

exit 0

O erro que recebo é:

./g.sh: line 5: [3: command not found
./g.sh: line 7: [3: command not found
Skilo Skilo
fonte

Respostas:

8

espaços necessários if [ $t1 -eq 3 ]

Fivesheep
fonte
você tem que estar brincando comigo ... Bash é um SOB exigente.
Skilo Skilo
4
@SkiloSkilo não é bash - [ é o seu próprio executável. Mora em /bin no meu Mac, pode estar em outro lugar no Linux. Os nomes dos programas sempre precisam de espaços ao redor deles.
MattDMo
Nesse caso [ é bom, no entanto, se sua variável não está entre aspas ou você quer correspondência de padrões, então use [[ ibm.com/developerworks/opensource/library/l-bash-test/…
spuder