porque erro de sintaxe perto do token inesperado 'fi'

1
#!/bin/bash

#

#

#

#

echo -e "please insert user name :"

read un

echo "$un"

len=${#un}

echo "$len"

ze=0

te=10

if [ "$len" -eq "$ze" ]

than

echo "no argument"

exit

fi

if [ "$len" -ge "$te" ]

than

echo "the Argument maximum 10 alphanumeric"

exit

fi
    
por Beginners 30.10.2011 / 14:00

1 resposta

5

Em resumo: erro de ortografia: é then , não than .

História mais longa: a sintaxe do comando if é essa (caracteres em negrito marcam palavras que não podem ser omitidas ou substituídas):

% bl0ck_qu0te%

onde você pode substituir o token ; por um novo caractere de linha.

O shell interpretará than como parte de test-commands , mas depois encontrará uma instrução fi , que é incorreta (e, sim, inesperada ) porque nunca encontrou a parte then .

    
por Riccardo Murri 30.10.2011 / 14:09