Ajuda com Script bash [RESOLVIDO]

1. Ajuda com Script bash [RESOLVIDO]

C B
Xuyzes

(usa Kali)

Enviado em 11/11/2021 - 16:13h

estou tentando criar um script que no final do código ele da uma opção ao usuário... porem ele retorna esse erro acima



#!/bin/bash

#limpar tela
echo "Deseja limpar a sua tela?"
PS3="Por favor selecione uma opção : "
choices=("yes" "no")
select choice in "${choices[@]}"; do
case $choice in
yes)

echo "limpando tela"
clear
break
;;
no)
echo "Ótimo Trabalho"
echo "Saindo da instalação..."
exit 1
;;
esac
done

fi


Erro que ele retorna ------------------------------------------------->>>>>

./clear.sh: linha 23: erro de sintaxe próximo ao token inesperado `fi'
./clear.sh: linha 23: `fi'



  


2. Re: Ajuda com Script bash

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 11/11/2021 - 18:45h

Xuyzes escreveu:

estou tentando criar um script que no final do código ele da uma opção ao usuário... porem ele retorna esse erro acima



#!/bin/bash

#limpar tela
echo "Deseja limpar a sua tela?"
PS3="Por favor selecione uma opção : "
choices=("yes" "no")
select choice in "${choices[@]}"; do
case $choice in
yes)

echo "limpando tela"
clear
break
;;
no)
echo "Ótimo Trabalho"
echo "Saindo da instalação..."
exit 1
;;
esac
done

fi


Erro que ele retorna ------------------------------------------------->>>>>

./clear.sh: linha 23: erro de sintaxe próximo ao token inesperado `fi'
./clear.sh: linha 23: `fi'

Segue:
#!/bin/bash

#limpar tela
echo "Deseja limpar a sua tela?"
PS3="Por favor selecione uma opção : "
choices=("yes" "no")
select choice in "${choices[@]}";do break;done
case $choice in
yes) echo "limpando tela";printf '\x1bc';;
no) echo -e "Otimo Trabalho\nSaindo da instalação...";;
esac
Outra Opção:
#!/bin/bash

printf "Limpar a tela?\n"
PS3=$'\nSelecione uma opção: ';

select opcao in Sim Não;do break;done
case $REPLY in
1) printf "Limpou a tela\n\x1bc";;
2) printf "\nNão limpou\n";;
*) printf "\nOpção:$REPLY é inválida\n";;
esac



______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________



3. Re: Ajuda com Script bash [RESOLVIDO]

C B
Xuyzes

(usa Kali)

Enviado em 13/11/2021 - 10:54h

Muito Obrigado amigo, e se eu quiser fazer isso aqui funcionar como faz ?

O mesmo comando abaixo, porem em vez de limpar a tela seria um comando de upgrade.. exemplo:


echo "\n\n\nDeseja Atualizar seu Linux ?"
PS3="Por favor selecione uma opção : "
choices=("yes" "no")
select choice in "${choices[@]}";do break;done
case $choice in
yes) echo "atualizando..";printf '\x1bc';; (sudo apt-get -y install kali-linux-default
sudo apt-get -y update
sudo apt -y full-upgrade
sudo apt -y dist-upgrade)

no) echo -e "\n\ncontinuando a instalação...";;
esac





msoliver escreveu:

Xuyzes escreveu:

estou tentando criar um script que no final do código ele da uma opção ao usuário... porem ele retorna esse erro acima



#!/bin/bash

#limpar tela
echo "Deseja limpar a sua tela?"
PS3="Por favor selecione uma opção : "
choices=("yes" "no")
select choice in "${choices[@]}"; do
case $choice in
yes)

echo "limpando tela"
clear
break
;;
no)
echo "Ótimo Trabalho"
echo "Saindo da instalação..."
exit 1
;;
esac
done

fi


Erro que ele retorna ------------------------------------------------->>>>>

./clear.sh: linha 23: erro de sintaxe próximo ao token inesperado `fi'
./clear.sh: linha 23: `fi'

Segue:
#!/bin/bash

#limpar tela
echo "Deseja limpar a sua tela?"
PS3="Por favor selecione uma opção : "
choices=("yes" "no")
select choice in "${choices[@]}";do break;done
case $choice in
yes) echo "limpando tela";printf '\x1bc';;
no) echo -e "Otimo Trabalho\nSaindo da instalação...";;
esac
Outra Opção:
#!/bin/bash

printf "Limpar a tela?\n"
PS3=$'\nSelecione uma opção: ';

select opcao in Sim Não;do break;done
case $REPLY in
1) printf "Limpou a tela\n\x1bc";;
2) printf "\nNão limpou\n";;
*) printf "\nOpção:$REPLY é inválida\n";;
esac



______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________





4. Re: Ajuda com Script bash [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 13/11/2021 - 16:38h

O comando que limpa a tela é o:
printf '\x1bc';
É só retirar...
Comandos no case são separados por ;


______________________________________________________________________
Importante:
lynx --dump https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando: ACIMA, faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts