quinta-feira, 13 de junho de 2013

Shell Script com Dialog - Usando o MENU (dialog --menu )

Segue o resumo de comandos e conceitos vistos em Sala de Aula.
Este é um material de apoio aos meus alunos que tem todo embasamento durante as aulas presenciais.

Você pode encontrar todos os resumos de aula no link abaixo:

Estas aulas são dedicadas ao uso de Shell Script com o recurso Dialog.

"O Dialog é um programa usado para desenhar interfaces amigáveis para o usuário, com botões e menus, a partir de um Shell Script." (aurelio.net/shell/dialog)

Recomendo a leitura do melhor manual em português de DIALOG que existe: http://aurelio.net/shell/dialog/

Para usar o recurso de caixas com o dialog, é necessário que você o instale na sua distribuição.
Caso você use DEBIAN/MINT/UBUNTU e derivados, faça:

# apt-get install dialog

Caso você use REDHAT/FEDORA/CENTOS e derivados, faça:

# yum install dialog


Este exemplo, usaremos o recurso menu, que apenas exibe um menu para o usuário. 
Você pode testar direto na linha de comando, ou usar um script.
Faça você mesmo:

dialog --menu 'Escolha Sua Opcao'  0 0 0 Item1 'descricao do Item1'   Item2 'Descricao do Item2' 

Veja um exemplo mais completo utilizando o script abaixo que produz as seguintes telas:






Código fonte do Script:

#!/bin/bash
##########################################################
# Scripts de Exemplo de Uso de Shell Script com Dialog   #                  
# Obs: Nao esqueca que para funcionar o pacote dialog    #
#      tem que estar instalado no seu S.O.               #
#                                                        #
# Autor: Dailson Fernandes - contato@dailson.com.br      #
# Licenca: GNU/GPL                                       # 
##########################################################
# Exibe uma mensagem simples para o usuario.
dialog --infobox " Exibindo um menu para o Usuario" 3 40
read

# Obs: A barra invertida quebra a linha esteticamente,
#      Porem nao ha quebra no comando. 

dialog --menu 'Escolha Sua Opcao' \
       0 0 0 Item1 'descricao do Item1' \
             Item2 'Descricao do Item2' \
             Item3 'Descricao do Item3' \
             Item4 'Descricao do Item4' \
             Item5 'Descricao do Item5' 

dialog --infobox "Capturando a escolha do Usuario" 3 40
read

# Capturando as escolhas do usuario.
# Note a presenca do --stdout e do subshell $(comando) 
ESCOLHA=$(dialog --stdout --menu 'Escolha Sua Opcao' \
       0 0 0 Item1 'descricao do Item1' \
             Item2 'Descricao do Item2' \
             Item3 'Descricao do Item3' \
             Item4 'Descricao do Item4' \
             Item5 'Descricao do Item5')
dialog --infobox "O Item Escolhido foi:\n $ESCOLHA" 4 30
read

clear

Baixe todos os scripts de exemplos de dialog: 
http://www.reconstrucao.org/palestra/shell/dialog/dialog.tar.gz 

4 comentários:

  1. Otimo tutorial, estou com uma dúvida como eu faria para capturar a descricao ???

    Abs.

    ResponderExcluir
  2. uma duvida gostaria de compartilhar na rede uma caixa box como a acima
    como faria isso

    ResponderExcluir
    Respostas
    1. Você pode rodar o script acessando a máquina servidora via SSH.

      Excluir