Criar menu com radiolist

1. Criar menu com radiolist

Eduardo Schuh Pereira
schuhpereira

(usa Ubuntu)

Enviado em 16/06/2016 - 20:00h

Boa noite pessoal

Gostaria de criar um menu com a opção --radiolist

segue um exemplo

while : ; do

# Mostra o menu na tela, com as ações disponíveis

opcao=$(yad --list --title "Menu de manutenção V.0.1.0"\
--text "O que deseja fazer?"\
--column "Opção" --column "descrição"\
--width="300" --height="215" \
1 "Atualiza Sistema" \
2 "Reparar sistema" \
3 "Backup" \
4 "Iniciar programas" \
5 "Instalar programas" \
0 "Sair" )


while : ; do

# Se apertar CANCELAR ou ESC, então vamos sair...
[ $? -ne 0 ]

# De acordo com a opção escolhida, dispara programas
opcao=$(echo $opcao | egrep -o '^[0-9]')
case "$opcao" in

# Atualiza as PPAs do sistema
1) /caminho_do_script/atualiza.sh

break ;;


Como eu crio as opções?

Assim como ele está, abre o menu, mas não executa os comando ficando a tele do terminal parada.



  


2. Re: Criar menu com radiolist

Perfil removido
removido

(usa Nenhuma)

Enviado em 16/06/2016 - 21:15h

Você não quer tentar com Zenity?
Esse eu tenho no meu sistema :-)

----------------------------------------------------------------------------------------------------------------
Nem direita, nem esquerda. Quando se trata de corrupção o Brasil é ambidestro.
(anônimo)

Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden



3. Re: Criar menu com radiolist

Marcelo Oliver
msoliver

(usa Debian)

Enviado em 16/06/2016 - 21:51h

schuhpereira escreveu:

Boa noite pessoal

Gostaria de criar um menu com a opção --radiolist

segue um exemplo

while : ; do

# Mostra o menu na tela, com as ações disponíveis

opcao=$(yad --list --title "Menu de manutenção V.0.1.0"\
--text "O que deseja fazer?"\
--column "Opção" --column "descrição"\
--width="300" --height="215" \
1 "Atualiza Sistema" \
2 "Reparar sistema" \
3 "Backup" \
4 "Iniciar programas" \
5 "Instalar programas" \
0 "Sair" )


while : ; do

# Se apertar CANCELAR ou ESC, então vamos sair...
[ $? -ne 0 ]

# De acordo com a opção escolhida, dispara programas
opcao=$(echo $opcao | egrep -o '^[0-9]')
case "$opcao" in

# Atualiza as PPAs do sistema
1) /caminho_do_script/atualiza.sh

break ;;
Como eu crio as opções, para chamar outros scripts

________________________________
Boa noite.
Sugestão. . .
Crie FUNÇÕES, para cada opção do MENU.
Segue exemplo:
CVA="\x1B[0;38;5;196m"
FC="\x1B[m"
MENU() {

echo " ••••••••••••••••••••••••••••••••••••••••••
•••••••••• MENU ••••••••••
••• •••
••• [1] CADASTRO [4] INCLUI •••
••• [2] BUSCA [5] EVENTOS •••
••• [3] ALTERA [6] SAIR •••
••• •••
••••••••••••••••••••••••••••••••••••••••••"

read -p " OPÇãO: " -n1 OPC
echo -e "\n"
case "$OPC" in
1) CADASTRAR ;;
2) BUSCA ;;
3) ALTERA ;;
4) INCLUI ;;
5) EVENTOS ;;
6) SAIR ;;
*) MSGM ;;
esac
}


CADASTRAR() {
COMANDOS . . .
}

CONSULTA() {
COMANDOS . . .
}
#Essa abaixo é a função para opção invalida, o que for diferente de [1-6]
MSGM() { echo -e "$CVA \" OPÇãO INVáLIDA! \" $FC" ; sleep 1.25 ; MENU}

Cada OPÇÃO, chama uma função. . .

att.:
marcelo oliver


4. Re: Criar menu com radiolist

Eduardo Schuh Pereira
schuhpereira

(usa Ubuntu)

Enviado em 17/06/2016 - 20:09h

Amigos

sou meio leigo nesta parte do shell script. Não entedi com clareza onde entra o radiolist.

Poderia explicar com mais detalhes.

Agradeço.


5. Re: Criar menu com radiolist

Eduardo Schuh Pereira
schuhpereira

(usa Ubuntu)

Enviado em 17/06/2016 - 22:03h

Consegui resolver
ficou assim:

#!/bin/bash


while : ; do

# Mostra o menu na tela, com as ações disponíveis

opcao=$(yad --list --radiolist --title "Atualiza sistema"\
--text "O que deseja fazer?"\
--column "Opção" --column "descrição"\
--width="240" --height="190" \
true "Atualiza pacotes" \
false "Atualiza programas" \
false "Atualiza a distro" \
false "Sair" )

while : ; do

# Se apertar CANCELAR ou ESC, então vamos sair...
[ $? -ne 0 ]

# De acordo com a opção escolhida, dispara programas
#opcao=$(echo $opcao | egrep -o '^[0-3]')
#case "$opcao" in

# Atualiza as PPAs do sistema
if echo $opcao | grep $"Atualiza pacotes" ; then
sudo apt-get update
fi

###############################################################################################################
# Atualização os programas
if echo $opcao | grep $"Atualiza programas" ; then
sudo apt-get upgrade
fi

###############################################################################################################
# Atualiza a distro
if echo $opcao | grep $"Atualiza a distro" ; then
sudo apt-get -f dist-upgrade
fi

if echo $opcao | grep $"Sair" ; then
exit
fi

done

done

O problema é que tenho vários scripts que fazem parte do mesmo conjunto, e quando preciso voltar para o menu principal, ele fica sempre no mesmo menu.

Como resolve esta parte?
Existe algum comando para isso?


6. Melhoria ao apertar CANCELAR ou ESC

Tomaz
tomazcunha

(usa Debian)

Enviado em 06/01/2017 - 20:51h

Rodei o programa e ficou muito bacana, mas percebi que ao apertar ESC ou Cancelar, ele parava a execução fechando a janela, mas não liberava o terminal, eu tinha que dar um CTRL+C para liberar. Acrescentei uma expressão para resolver isso.

Na linha onde tem:
[ $? -ne 0 ]

Acrescente "; exit" desta forma:
[ $? -ne 0 ] ; exit







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts