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)
"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
# yum install dialog
Caso você use REDHAT/FEDORA/CENTOS e derivados, faça:
Este exemplo, usaremos o recurso inputbox, que exibe uma barra de progesso para o usuário. Ela pode ser usada de maneira "fake" ou se preferir, você pode fazer um bom trabalho de programação e torná-la real. No nosso caso, faremos o básico. Caso você tenha a intenção de se aprofundar no assunto, baixe este script de Aurélio e dê uma estudada nele ;) --> http://aurelio.net/shell/dialog/copydir.sh
Você pode testar direto na linha de comando, ou usar um script.
Faça você mesmo:
# (echo 50; sleep 2; echo 100) | dialog --gauge 'Aguarde... ' 8 40 0
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 --msgbox "Exibindo uma Barra de Progresso \npara o Usuario" 0 0
(echo 50; sleep 2; echo 100) | dialog --gauge 'Aguarde... ' 8 40 0
# Use: (echo % ; comando1 ; echo %; comando2 .. | dialog --gauge...
# Note o exemplo abaixo. A Cada um segundo, 10% da barra sera consumida.
dialog --msgbox "Simulando com o comando Sleep" 0 0
# Obs: A barra invertida quebra a linha esteticamente,
# Porem nao ha quebra no comando.
(echo 10; sleep 1; \
echo 20; sleep 1; \
echo 30; sleep 1; \
echo 40; sleep 1; \
echo 50; sleep 1; \
echo 60; sleep 1; \
echo 70; sleep 1; \
echo 80; sleep 1; \
echo 90; sleep 1; echo 100) | dialog --gauge 'Aguarde... \n
Simulando com o Comando Sleep' 8 70 0
#Obs: Veja como ficaria este comando sem as barras invertidas dentro de um Script
#(echo 10; sleep 1;echo 20; sleep 1; echo 30; sleep 1; echo 40; sleep 1; echo 50; sleep 1; echo 60; sleep 1; echo 70; sleep 1; echo 80; sleep 1; echo 90; sleep 1; echo 100) | dialog --gauge 'Aguarde... ' 8 40 0
dialog --msgbox "Copiando arquivos..." 0 0
# Coloque entre os echo % as operacoes... Por exemplo:
(echo 10; cp -R /etc/ /tmp; \
echo 30; cp -R /etc/ /tmp/; \
echo 60; cp -R /etc/ /tmp/; \
echo 90; rm -Rf /tmp/etc ; echo 100) | dialog --gauge 'Aguarde... Copiando Arquivos' 8 70 0
read
clear
Baixe este script em:
http://www.reconstrucao.org/palestra/shell/dialog/gauge.sh
Baixe todos os scripts de exemplos dialog:
http://www.reconstrucao.org/palestra/shell/dialog/dialog.tar.gz
Baixe todos os scripts de exemplos dialog:
http://www.reconstrucao.org/palestra/shell/dialog/dialog.tar.gz