Por que esse script dá erro? [duplicado]

1
    

Esta pergunta já tem uma resposta aqui:

    

Por que esse script gera erros?

#!/bin/bash
# This script checks whether 
# the current user is root or 
# not.
if [ $UID -ne 0 ] then
    echo "Non-root user."
else
    echo "Root user."
Fi

Saída

myuser@kali:~$ ./user.sh
./user.sh: line 7: syntax error near unexpected token 'else'
./user.sh: line 7: 'else'
myuser@kali:~$
    
por Jeff Schaller 18.06.2015 / 15:52

1 resposta

5

Você esqueceu de colocar ; entre if e then :

if [ "$UID" -ne 0 ]; then
    echo "Non-root user."
else
    echo "Root user."
fi

Além disso, a construção condicional if termina com fi , não Fi .

; é basicamente uma abreviação de nova linha. Se você quiser, pode usar then na próxima linha para evitar ; :

if [ "$UID" -ne 0 ]
then
    echo "Non-root user."
else
    echo "Root user."
fi
    
por 18.06.2015 / 15:55