Programando em Shell Script para iniciantes
Este é meu primeiro artigo, mas estudei bastante para fazê-lo. Ele foi desenvolvido principalmente para aqueles que querem começar nesse mundo fascinante da programação. Estudaremos os princípios do Shell Script e iremos até os diálogos gráficos.
Parte 5: Zenity
Esse diálogo é padrão no ambiente gráfico GNOME e tem como objetivo ser limpo e leve. É bem semelhante aos outros diálogos citados anteriormente.
Instalação:
Se você usa uma distribuição baseada no Debian é só digitar "sudo apt-get install zenity" num terminal.
Se você deseja instalar manualmente, baixe o zenity aqui.
Vá a um terminal e digite os comandos em seqüência:
$ tar zenity-2.20.0.tar.gz
$ cd zenity-2.20.0
$ ./configure
$ make
# make install
Chega de conversa e vamos estudar.
Entendendo o que você criou:
Opções comuns a todos os tipo de diálogos:
Instalação:
Se você usa uma distribuição baseada no Debian é só digitar "sudo apt-get install zenity" num terminal.
Se você deseja instalar manualmente, baixe o zenity aqui.
Vá a um terminal e digite os comandos em seqüência:
$ tar zenity-2.20.0.tar.gz
$ cd zenity-2.20.0
$ ./configure
$ make
# make install
Chega de conversa e vamos estudar.
#!/bin/sh
zenity --title="Criando diretório" --file-selection --directory > /tmp/caminho.tmp
if [ $? != 0 ]; then
zenity --title="Criando diretório" --warning --text="Entre com um caminho válido."
exit 0
fi
caminho=`cat /tmp/caminho.tmp`
zenity --title="Criando diretório" --entry --text="Digite o nome do diretório que deseja criar." > /tmp/diretorio.tmp
if [ $? != 0 ]; then
zenity --title="Criando diretório" --warning --text="Entre com um nome válido."
exit 0
fi
diretorio=`cat /tmp/diretorio.tmp`
if [ -e $caminho ]; then
mkdir -p "$caminho/$diretorio"
zenity --title="Criando diretório" --info --text="O diretório $diretorio foi criado."
else
zenity --title="Criando diretório" --error --text="Ocorreu um erro inesperado."
fi
zenity --title="Criando diretório" --file-selection --directory > /tmp/caminho.tmp
if [ $? != 0 ]; then
zenity --title="Criando diretório" --warning --text="Entre com um caminho válido."
exit 0
fi
caminho=`cat /tmp/caminho.tmp`
zenity --title="Criando diretório" --entry --text="Digite o nome do diretório que deseja criar." > /tmp/diretorio.tmp
if [ $? != 0 ]; then
zenity --title="Criando diretório" --warning --text="Entre com um nome válido."
exit 0
fi
diretorio=`cat /tmp/diretorio.tmp`
if [ -e $caminho ]; then
mkdir -p "$caminho/$diretorio"
zenity --title="Criando diretório" --info --text="O diretório $diretorio foi criado."
else
zenity --title="Criando diretório" --error --text="Ocorreu um erro inesperado."
fi
Entendendo o que você criou:
- zenity : abre um diálogo;
- --title= : define o título do diálogo;
- --text= : define o texto da caixa de diálogo;
- --file-selection : abre um diálogo que seleciona um arquivo;
- --directory : age em conjunto com a sintaxe "--file-selection", fazendo com que selecione apenas diretório;
- if [ $? != 0 ]; : se a operação anterior for cancelada, ela vai gerar uma variável igual a "1", então seguirá com os comandos subseqüentes;
- --warning : abre um diálogo de alerta;
- --info : abre um diálogo de mensagem;
- --error : exibe uma mensagem de erro.
Opções comuns a todos os tipo de diálogos:
- "--title=TÍTULO" define o título do diálogo;
- "--window-icon=CAMINHODOÍCONE" define o ícone da janela;
- "--width=LARGURA" define a largura;
- "--height=ALTURA" define a altura.
- "--text=TEXTO" define o texto do diálogo;
- "--day=DIA" define o dia do calendário;
- "--month=MÊS" define o mês do calendário;
- "--year=ANO" define o ano do calendário;
- "--date-format=MODELO" define o formato para a data devolvida.
- "--text=TEXTO" define o texto do diálogo;
- "--entry-text=TEXTO" define o texto introduzido;
- "--hide-text=TEXTO" esconde o texto introduzido.
- "--text=TEXTO" define o texto do diálogo;
- "--no-wrap" não habilitar quebra de linha no texto.
- "--text=TEXTO" define o texto do diálogo;
- "--no-wrap" para não habilitar quebra de linha no texto.
- "--filename=NOMEDOARQUIVO" define o nome do arquivo;
- "--multiple" permite a seleção de múltiplos arquivos;
- "--directory" ativa apenas seleção de diretórios;
- "--save" ativa o modo salvar;
- "--separator=SEPARADOR" define o caractere separador de saída;
- "--confirm-overwrite" confirma a seleção do arquivo se o nome do arquivo já existe.
- "--text=TEXTO" define o texto do diálogo;
- "--column=COLUNA" define o cabeçalho da coluna;
- "--checklist" apresenta caixas de seleção, ou seja, podem ser escolhidas várias opções simultaneamente;
- "--radiolist" mostra botões de seleção, ou seja, só pode ser escolhida uma única opção;
- "--separator=SEPARADOR" define caractere separador de saída;
- "--multiple" permite seleção de múltiplas linhas;
- "--editable" permite alterações no texto;
- "--print-column=NÚMERO" apresenta uma coluna específica, o padrão é "1" e "ALL" pode ser usado para apresentar todas as colunas;
- "--hide-column=NÚMERO" esconde uma coluna específica.
- "--text=TEXTO" define o texto do diálogo;
- "--percentage=PORCENTAGEM" define porcentagem inicial;
- "--pulsate" pulsa a barra de progresso;
- "--auto-close" fecha o diálogo quando atingir 100%;
- "--auto-kill" mata o processo principal se a tecla cancelar for pressionada.
- "--text=TEXTO" define o texto do diálogo;
- "--no-wrap" não habilita quebra de linha no texto.
- "--text=TEXTO" defini o texto do diálogo;
- "--no-wrap" não habilita quebra de linha no texto.
- "--filename=NOMEDOARQUIVO" abre o arquivo;
- "--editable" permite alterações no texto.