Como criar uma condição de retorno e outra de continuação [RESOLVIDO]

1. Como criar uma condição de retorno e outra de continuação [RESOLVIDO]

Mac
Skylen

(usa Debian)

Enviado em 08/08/2019 - 19:38h

Boa noite,
Estou fazendo um programa em shell script para instalação de programas.
Bom, quero que este trecho do programa procure uma palavra no arquivo
caminho_programa.log, caso ache prossigua com o código, caso contrário
ele diga que não achou, e retorne para (read -p "Digite o nome do programa que
deseja desinstalar: " desinstalar). Como posso fazer isso?

Desde já agradeço pela ajuda!!!

echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo " Desinstalar"; break
echo

# Caso queira mudar o endereço altere a baixo,
# conforme foi alterado na função registro.
cd /home/mac/script/log_scripts/
read -p "Digite o nome do programa que deseja desinstalar: " desinstalar
echo
grep "$desinstalar" caminho_programa.log
echo
# Outra possibilidade.
# cat /home/mac/script/log_scripts/caminho_programa.log | grep $desinstalar
read -p "Informe o caminho do programa: " programa
cd $programa
echo
verificar # função


  


2. Re: Como criar uma condição de retorno e outra de continuação

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 08/08/2019 - 20:01h

Skylen escreveu:

Boa noite,
Estou fazendo um programa em shell script para instalação de programas.
Bom, quero que este trecho do programa procure uma palavra no arquivo
caminho_programa.log, caso ache prossigua com o código, caso contrário
ele diga que não achou, e retorne para (read -p "Digite o nome do programa que
deseja desinstalar: " desinstalar). Como posso fazer isso?

Desde já agradeço pela ajuda!!!

echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo " Desinstalar"; break
echo

# Caso queira mudar o endereço altere a baixo,
# conforme foi alterado na função registro.
cd /home/mac/script/log_scripts/
read -p "Digite o nome do programa que deseja desinstalar: " desinstalar
echo
grep "$desinstalar" caminho_programa.log
echo
# Outra possibilidade.
# cat /home/mac/script/log_scripts/caminho_programa.log | grep $desinstalar
read -p "Informe o caminho do programa: " programa
cd $programa
echo
verificar # função

Boa noite Skylen.
use o if com o grep,
exemplo:
if grep -w "${desinstalar}" caminho_programa.log;then
echo " Programa: ${desinstalar} encontrado, continuando..."
#comandos para desinstalar.....
#comandos para desinstalar.....
break; #Feita a Desinstalação, interrompe o laço.
else
echo -e " Programa: ${desinstalar} \e[0;31m NÃO ENCONTRADO \e[m"
fi

O "-w" é para "casar" a palavra exata.
Importante => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


3. Re: Como criar uma condição de retorno e outra de continuação [RESOLVIDO]

Mac
Skylen

(usa Debian)

Enviado em 09/08/2019 - 12:05h

Obrigado!!!
Sequindo seu princípio, consegui fazer o que queria...
Segue o código:
		     ###################
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo " Desinstalar"; break
echo

x=0;
y=4;

# Caso queira mudar o endereço altere a baixo,
# conforme foi alterado na função registro.
cd /home/mac/script/log_scripts/
read -p "Digite o nome do programa que deseja desinstalar: " desinstalar
echo
###################
# Prossegue com o programa.
prosseguir(){
echo
# Outra possibilidade.
# cat /home/mac/script/log_scripts/caminho_programa.log | grep $desinstalar
read -p "Informe o caminho do programa: " programa
cd $programa
echo
verificar
}
###################
# Reinicia a pesquisa do valor em até 3 vezez o valor errado,
# caso seja certo ele avisa e prossegue com o programa.
pare (){
if grep -w "$desinstalar" caminho_programa.log; then
echo -e "Programa não encontrado ${desinstalar}."
echo
sleep 2
read -p "Digite o nome do programa que deseja desinstalar: " desinstalar
echo
else
while [ $x -le 3 ] ; do
let x=x+1;
if [ $x -le 3 ]; then
echo -e "Programa não encontrado ${desinstalar}."
echo
sleep 2
read -p "Digite o nome do programa que deseja desinstalar: " desinstalar
echo
elif grep -w "$desinstalar" caminho_programa.log; then
echo
echo -e "Programa encontrado ${desinstalar}"
prosseguir
else

echo -e "Programa não encontrado ${desinstalar}."
echo
fi
###################
done
###################
fi
}
###################
if grep -w "$desinstalar" caminho_programa.log; then
echo
# Outra possibilidade.
# cat /home/mac/script/log_scripts/caminho_programa.log | grep $desinstalar
read -p "Informe o caminho do programa: " programa
cd $programa
echo

#verificar
else
pare
fi

###################
}
###################
menu # A Função principal "menu" tem que está por
# último para leitura de todas as opções do programa.
# Código Finalizado
###################



4. Re: Como criar uma condição de retorno e outra de continuação [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 09/08/2019 - 15:19h

Skylen, boa tarde.
O código acima está completo?
Se sim, o "break" na 3ª linha, não procede.....
O mesmo é utilizado para interromper um "LAÇO".

Outro detalhe:
Na função pare
if grep -w "$desinstalar" caminho_programa.log; then
echo -e "Programa não encontrado ${desinstalar}."
. . .

Está errado!!!....
Essa condição, ocorre se o "programa" é encontrado..
[/code]

IMPORTANTE!!! => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


5. Re: Como criar uma condição de retorno e outra de continuação [RESOLVIDO]

Mac
Skylen

(usa Debian)

Enviado em 10/08/2019 - 10:52h

Agora que endenti o que quiz dizer. Durante a execução de digita-se o nome do programa certo, ela só ia continuar o processo na terceira vez.

Dê uma olhadinha, fiz a correção...

# Para desistalar o programa.
desinstalar(){
###################
verificar(){

# Arquivos.
CONFIGURE=configure
make=Makefile
###################
# Condicional verifica se os arquivos se encontra na pasta expecificada.
if [ -e "$CONFIGURE" ]; then
echo
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo "Arquivo $CONFIGURE se encontra."
sleep 1
echo
./configure && make uninstall && make clean # Executa a configuração e a desinstalação.
enter
deletar
menu # Volta para o menu.
elif [ -e "$make" ]; then
echo
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo "Arquivo $make se encontra."
sleep 1
echo
make uninstall && make clean # Executa a desinstalação.
deletar
enter
menu # Volta para o menu.

else # Caso não encontre os arquivos será executado os comandos a baixo
echo
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo "Arquivos inexistentes"
sleep 1
echo
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo "Impossível desinstalar"
echo
sleep 1
exit
fi
}


###################
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo " Desinstalar"
sleep 1
echo
# Variável.
x=1;

# Caso queira mudar o endereço altere a baixo,
# conforme foi alterado na função registro.
cd /home/mac/script/log_scripts/
read -p "Digite o nome do programa que deseja desinstalar: " desinstalar
echo
###################
# Prossegue com o programa.
prosseguir(){
echo
# Outra possibilidade.
# cat /home/mac/script/log_scripts/caminho_programa.log | grep $desinstalar
read -p "Informe o caminho do programa: " programa
cd $programa
echo
verificar
}
###################
# Reinicia a pesquisa do valor em até 3 vezez o valor errado,
# caso seja certo ele avisa e prossegue com o programa.
pare(){

while [ $x -le 3 ]; do
let x=x+1;
if grep -w "$desinstalar" caminho_programa.log; then
echo
echo -e "Programa encontrado ${desinstalar}."
prosseguir
else
echo
echo -e "Programa não encontrado ${desinstalar}."
echo
sleep 1
read -p "Digite o nome do programa que deseja desinstalar: " desinstalar
echo
if [ $x == 4 ]; then
echo
echo -e "Programa não encontrado ${desinstalar}."
echo
fi
fi
###################
done
}
###################
# Primeira pesquisa.
if grep -w "$desinstalar" caminho_programa.log; then
# Outra possibilidade.
# cat /home/mac/script/log_scripts/caminho_programa.log | grep $desinstalar
echo
read -p "Informe o caminho do programa: " programa
export programa
cd $programa
echo
verificar
else
pare
fi

###################
}



6. Re: Como criar uma condição de retorno e outra de continuação [RESOLVIDO]

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 10/08/2019 - 17:03h


Skylen escreveu:

Agora que endenti o que quiz dizer. Durante a execução de digita-se o nome do programa certo, ela só ia continuar o processo na terceira vez.

Dê uma olhadinha, fiz a correção...

# Para desistalar o programa.
desinstalar(){
###################
verificar(){

# Arquivos.
CONFIGURE=configure
make=Makefile
###################
# Condicional verifica se os arquivos se encontra na pasta expecificada.
if [ -e "$CONFIGURE" ]; then
echo
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo "Arquivo $CONFIGURE se encontra."
sleep 1
echo
./configure && make uninstall && make clean # Executa a configuração e a desinstalação.
enter
deletar
menu # Volta para o menu.
elif [ -e "$make" ]; then
echo
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo "Arquivo $make se encontra."
sleep 1
echo
make uninstall && make clean # Executa a desinstalação.
deletar
enter
menu # Volta para o menu.

else # Caso não encontre os arquivos será executado os comandos a baixo
echo
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo "Arquivos inexistentes"
sleep 1
echo
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo "Impossível desinstalar"
echo
sleep 1
exit
fi
}


###################
echo ">>>>>>>>>> ------------------------------------------- <<<<<<<<<<"
echo " Desinstalar"
sleep 1
echo
# Variável.
x=1;

# Caso queira mudar o endereço altere a baixo,
# conforme foi alterado na função registro.
cd /home/mac/script/log_scripts/
read -p "Digite o nome do programa que deseja desinstalar: " desinstalar
echo
###################
# Prossegue com o programa.
prosseguir(){
echo
# Outra possibilidade.
# cat /home/mac/script/log_scripts/caminho_programa.log | grep $desinstalar
read -p "Informe o caminho do programa: " programa
cd $programa
echo
verificar
}
###################
# Reinicia a pesquisa do valor em até 3 vezez o valor errado,
# caso seja certo ele avisa e prossegue com o programa.
pare(){

while [ $x -le 3 ]; do
let x=x+1;
if grep -w "$desinstalar" caminho_programa.log; then
echo
echo -e "Programa encontrado ${desinstalar}."
prosseguir
else
echo
echo -e "Programa não encontrado ${desinstalar}."
echo
sleep 1
read -p "Digite o nome do programa que deseja desinstalar: " desinstalar
echo
if [ $x == 4 ]; then
echo
echo -e "Programa não encontrado ${desinstalar}."
echo
fi
fi
###################
done
}
###################
# Primeira pesquisa.
if grep -w "$desinstalar" caminho_programa.log; then
# Outra possibilidade.
# cat /home/mac/script/log_scripts/caminho_programa.log | grep $desinstalar
echo
read -p "Informe o caminho do programa: " programa
export programa
cd $programa
echo
verificar
else
pare
fi

###################
}

Boa tarde.
Segue um exemplo de um laço "controlado", dentro da função.
DESINSTALA(){
clear;
X=1;
while (($X<=3)); do
echo -e "\n TENTATIVA Nº $X"
read -p " Digite o nome do programa: " desinstalar
if grep -wq "$desinstalar" caminho_programa.log; then
echo -e "\n Programa: \"${desinstalar}\" encontrado."
echo -e " COLOQUE OS COMANDOS PARA EFETUAR a DESINSTALAÇÃO,\n Antes do comando \"break\""
#COMANDOS PARA DESINSTALAR.......
break;
echo "# APÓS BREAK, INTERROMPE O LAÇO! Esta mensagem não aparece na tela... #"
else
echo -e "\n Programa: \"${desinstalar}\", não encontrado."
sleep 1;
fi
let X++
done
}



IMPORTANTE!!! => echo -e "$(lynx --dump goo.gl/a9KeFc|sed -nr '/^[ ]+Se/,/dou.$/p')"
Att.: Marcelo Oliver


7. Re: Como criar uma condição de retorno e outra de continuação [RESOLVIDO]

Mac
Skylen

(usa Debian)

Enviado em 10/08/2019 - 17:46h

Boa tarde,
Vou testar o código que mandou, mas o qual o fiz também da certo sem erro, pelo testes que fiz.






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts