linha 42: erro de sintaxe: final inesperado do arquivo [fechado]

1

Eu sou relativamente novo no bash scripting tão nua comigo, mas preciso de ajuda. Eu sinto que tenho todas as coisas certas lá, mas isso não está indo bem. Eu estou tentando fazer um log de segurança simplesmente nos prompts que o usuário insira um nome e, em seguida, se disse que o nome corresponde a uma das instruções if, em seguida, ele faz com que eles digitem uma senha seguida por um su login. "linha 42: erro de sintaxe: final inesperado do arquivo "depois de inserir os dados no primeiro prompt de entrada do usuário para o nome.

#!/bin/bash

clear

read -p "Please enter your name:" i

if [ "$i" = "Tyler" ]
    then
        read -p "Hello Tyler. Please enter you password now:" b         

            if [ "$b" = "1234567890" ]
                    then
                        echo "You really are Tyler!! Prove it again!!"
                        su

            else
                echo "WRONG ANSWER!!"

if [ "$i" = "LouRae" ]
    then 
        read -p "Hey there beautiful. Please enter you password now:" b

            if [ "$b" = "123456789" ]
                    then
                        echo "You really are LouRae!! Prove it again!!"
                        su
            else
                        echo "WRONG ANSWER!!!"

if [ "$i" = "Emma" ]
    then
        read -p "Hello Emma. Please enter you password now:" b

            if [ "$b" = "12345678" ]
                    then
                        echo "You really are Emma!! Prove it again!!"
                        su
            else
                        echo "WRONG ANSWER!!!"

fi
    
por Mr. Nobody 26.12.2015 / 16:37

2 respostas

4

Você precisa encerrar todas as instruções if com fi , como

if [ "$i" = "Tyler" ]
    then
        read -p "Hello Tyler. Please enter you password now:" b         

            if [ "$b" = "1234567890" ]
                    then
                        echo "You really are Tyler!! Prove it again!!"
                        su

            else
                echo "WRONG ANSWER!!"
            fi
fi
    
por Florian Diesch 26.12.2015 / 16:48
1

SCRIPT ATUALIZADO (TRABALHO)

#!/bin/bash

clear

read -p "Please enter your name:" i

if [ "$i" = "Tyler" ]
    then
        read -p "Hello Tyler. Please enter you password now:" b         

            if [ "$b" = "1234567890" ]
                    then
                        echo "You really are Tyler!! Prove it again!!"
                        su

            else
                echo "WRONG ANSWER!!"
        fi
fi

if [ "$i" = "LouRae" ]
    then 
        read -p "Hey there beautiful. Please enter you password now:" b

            if [ "$b" = "123456789" ]
                    then
                        echo "You really are LouRae!! Prove it again!!"
                        su
            else
                        echo "WRONG ANSWER!!!"
        fi
fi

if [ "$i" = "Emma" ]
    then
        read -p "Hello Emma. Please enter you password now:" b

            if [ "$b" = "12345678" ]
                    then
                        echo "You really are Emma!! Prove it again!!"
                        su
            else
                        echo "WRONG ANSWER!!!"
        fi
fi
    
por Mr. Nobody 26.12.2015 / 16:58