Erro no shell script

1. Erro no shell script

Estevan
Tevo45

(usa Arch Linux)

Enviado em 15/12/2014 - 16:18h

estou tentando criar um shell script, porem, quando executo ele, apareçe esse erro
estevan@estevan-PC:~$ ./estevan.sh
./estevan.sh: line 56: syntax error near unexpected token `)'
./estevan.sh: line 56: `*) menu ;;'
estevan@estevan-PC:~$


não sei o que esta errado
aqui esta a source do script:

#!/bin/bash
#shell script com varias utilidades e diversões, algumas mais uteis do que divertidas, outras mais divertidas do que uteis

#tela de inicio, onde pergunta seu nome, aparece o logo do script e vai para o menu
welcome()
{
clear
echo "qual é o seu nome?"
read nome
echo "Bem Vindo, $nome"
echo ""
echo ""
echo " ___ ___ "
echo " /\__\ ___ /\ \ "
echo " ___ /:/ _/_ /\ \ /::\ \ "
echo " /\__\ /:/ /\__\ \:\ \ /:/\:\ \ "
echo " /:/ / /:/ /:/ _/_ \:\ \ /:/ \:\ \ "
echo " /:/__/ /:/_/:/ /\__\ ___ \:\__\ /:/__/ \:\__\ "
echo " /::\ \ \:\/:/ /:/ / /\ \ |:| | \:\ \ /:/ / "
echo " /:/\:\ \ \::/_/:/ / \:\ \|:| | \:\ /:/ / "
echo " \/__\:\ \ \:\/:/ / \:\__|:|__| \:\/:/ / "
echo " \:\__\ \::/ / \::::/__/ \::/ / "
echo " \/__/ \/__/ ~~~~ \/__/ "
echo " ___ ___ ___ ___ "
echo " /\__\ /\__\ /\ \ /\ \ "
echo " /:/ _/_ /:/ / /::\ \ ___ /::\ \ ___ "
echo " /:/ /\ \ /:/ / /:/\:\__\ /\__\ /:/\:\__\ /\__\ "
echo " /:/ /::\ \ /:/ / ___ /:/ /:/ / /:/__/ /:/ /:/ / /:/ / "
echo " /:/_/:/\:\__\ /:/__/ /\__\ /:/_/:/__/___ /::\ \ /:/_/:/ / /:/__/ "
echo " \:\/:/ /:/ / \:\ \ /:/ / \:\/:::::/ / \/\:\ \__ \:\/:/ / /::\ \ "
echo " \::/ /:/ / \:\ /:/ / \::/~~/~~~~ ~~\:\/\__\ \::/__/ /:/\:\ \ "
echo " \/_/:/ / \:\/:/ / \:\~~\ \::/ / \:\ \ \/__\:\ \ "
echo " /:/ / \::/ / \:\__\ /:/ / \:\__\ \:\__\ "
echo " \/__/ \/__/ \/__/ \/__/ \/__/ \/__/ "
echo ""
echo "Carregando..."
sleep 1
menu
}

#onde voce seleciona o que fazer (obvio)
menu()
{
clear
echo "Ola $nome, O que gostaria de fazer"
echo "1)Jogos "
echo "2)Utilidades "
echo "3)Animações Telnet (requer conexão com a internet) "
echo "4)Sair "
read opt
case opt in
1) jogos ;;
2) util ;;
3) mentelnet ;;
4) exit
*) echo "Opção invalida " ; sleep 1 ; menu ;;
esac
}

mentelnet()
{
echo "1)Star Wars episode IV "
echo "2)Nyan Cat !!! "
echo "3)Voltar ao menu "
read tel
case tel in
1) star ;;
2) nyan ;;
3) menu ;;
*) echo "Opção invalida " ; sleep 1 ; mentelnet ;;
esac
}

star()
{
telnet towel.blinkenlights.nl
mentelnet
}

nyan()
{
telnet nyancat.dakko.us
mentelnet
}

welcome



  


2. Re: Erro no shell script

Phillipe Smith
smithux

(usa Arch Linux)

Enviado em 15/12/2014 - 16:46h

Opa! Dois erros básicos no teu script meu brother:

LINHA 51: faltou o $ no opt para validar o valor da variável:

- case opt in
+ case $opt in


LINHA 55: faltou o ;; no final do exit

- 4) exit
+ 4) exit ;;



3. Re: Erro no shell script

Geraldo Albuquerque
AprendiNoLinux

(usa Ubuntu)

Enviado em 15/12/2014 - 18:46h

Costumo usar outra técnica para mostrar qualquer tipo de Splash em Scripts....


source libs/lib_splash.sh
splash_app 2
clear
splash_app 1



Na minha lib que tem vários Splashs....

libs/lib_splash.sh


function splash_app()
{
local lc_tempo=${1:-0} # Tempo de espera.
local lc_splash=${2:-0} # Número do Splash.
local lc_limpa_tela=${3:-1} # Faz Clear na tela ? 0=não. 1=sim DEFAULT.

CVMO=`tput setaf 1`
echo $CVMO
if [ "${lc_limpa_tela}" == "1" ]; then
clear
fi
if [ "${lc_splash}" == "0" ]; then
chama_splash="splash_$((RANDOM % 13+1))"
eval $chama_splash
else
# Tomar cuidado que no parâmetro 2 só pode vir numerais.
chama_splash="splash_${lc_splash}"
eval $chama_splash
fi
VNOR=`tput sgr0` # Normal
echo -n $VNOR
echo " #:-----------------------------------------------Siga-->> @MilitanciaAtiva :# "
read -t ${lc_tempo}
return 0
}

function splash_1()
{
cat << 'EOF'
__ __ ____ __ ____ ____ __ _ _ ___ ____ __
( \/ )(_ _)( ) (_ _)(_ _) /__\ ( \( )/ __)(_ _) /__\
) ( _)(_ )(__ _)(_ )( /(__)\ ) (( (__ _)(_ /(__)\
(_/\/\_)(____)(____)(____) (__)(__)(__)(_)\_)\___)(____)(__)(__)
___ ____ ____ __ _ _ ____ _____
/ __)(_ _)(_ _) /__\ ( \( )( _ \( _ )
( (__ _)(_ )( /(__)\ ) ( )(_) ))(_)(
\___)(____) (__)(__)(__)(_)\_)(____/(_____)
EOF
return
}

function splash_2()
{
cat << EOF
___ ___ _ _ _ ______ ___ __ __ _____ __ ___
/ |/ | | | | | | | |_ _| / | | \ | | / ___| | | / |
/ /| /| | | | | | | | | | / /| | | \| | | | | | / /| |
/ / |__/ | | | | | | | | | | / /_| | | |\ | | | | | / /_| |
/ / | | | | | |___ | | | | / / | | | | \ | | |___ | | / / | |
/_/ |_| |_| |_____| |_| |_| /_/ |_| |_| \_| \_____| |_| /_/ |_|
EOF
}

function splash_3()
{
cat << EOF
## ## # # # ##### ## # # #### # ##
# # # # # # # # # # ## # # # # # #
# # # # # # # # # # # # # # # #
# # # # # # ###### # # # # # ######
# # # # # # # # # ## # # # # #
# # # ###### # # # # # # #### # # #
EOF
return
}

function splash_4()
{
cat << EOF
dMMMMMMMMb dMP dMP dMP dMMMMMMP .aMMMb dMMMMb .aMMMb dMP .aMMMb
dMP"dMP"dMP amr dMP amr dMP dMP"dMP dMP dMP dMP"VMP amr dMP"dMP
dMP dMP dMP dMP dMP dMP dMP dMMMMMP dMP dMP dMP dMP dMMMMMP
dMP dMP dMP dMP dMP dMP dMP dMP dMP dMP dMP dMP.aMP dMP dMP dMP
dMP dMP dMP dMP dMMMMMP dMP dMP dMP dMP dMP dMP VMMMP" dMP dMP dMP
EOF
}

function splash_5()
{
cat << EOF
______ _ _ _ _
| ___ \(_) (_)_ (_)
| | _ | |_| |_| |_ ____ ____ ____ _ ____
| || || | | | | _)/ _ | _ \ / ___) |/ _ |
| || || | | | | |_( ( | | | | ( (___| ( ( | |
|_||_||_|_|_|_|\___)_||_|_| |_|\____)_|\_||_|
EOF
return
}



Costumo fazer desta forma para poder desenhar a tela tranquilamente....







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts