De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Julio Cezar Neves
Data de Publicação: 06 de setembro de 2018
Ainda tem tempo para você se inscrever no curso sobre Programação Shell Linux do Prof. Julio Neves.
Mermão, se você gosta de usar a interface a caractere, lhe aconselho a
instalar o yad
(Yet Another Dialog) com urgência. O yad
é um
fork do zenity, só que muuuuuito mais incrementado. Para termos uma
pequena ideia, pois este artigo é só um ensaio, nele você pode:
Vamos logo aos exemplos para acabar com a encheção de saco:
Saida=$(yad --form --image logo-dicas-l.png --image-on-top \ --title "Dicas-L/Livra-TE ensino profissional" --text \ "Demo do YAD para Livra-TE/Dicas-L"\ --field Nome 'Juliana' \ --field Nascimento:DT 01/01/2000 \ --field "Há quantos anos usa Linux:NUM" '1!0..25!1' \ --field "Sites preferidos:CB" \ 'BR-Linux!^Dicas-l!Viva o Linux!Outros' \ --field "Vou passar a usar o yad:CHK" TRUE \ --field "Vou continuar usando zenity:CHK")
Clicando nas caixas deste formulário, você verá que:
:DT
abriria um calendário com a data 01/01/2000 previamente selecionada;
:NUM
define uma SpinBox, da qual se informa: Valor Inicial!ValorMínimo..ValorMáximo!Incremento;
:CB
gera uma ComboBox com os valores especificados como Valor1!Valor2!...!Valorn
. Ainda sobre este campo convém chamar a atenção para um circunflexo (^
) antes de Dicas-l. Isso faz com que este seja o valor default.
Repare que o código é autoexplicativo e extremamente simples e veja ainda
que o yad
aceita todas as facilidades de formatação oferecidas pelo
GTK. Nesse exemplo usei as tags <b>
e <big>
da linguagem Pango Markup
do GTK. Poderia ter trocado também cores do texto, fazer sub ou super escrito,
itálico, ...
Deixando os campos com seus valores default, as linhas a seguir mostram
o conteúdo da variável $Saida
e uma forma rápida de separar os campos em
variáveis.
$ echo $Saida
Juliana|01/01/2000|1|Dicas-l|TRUE|FALSE|
O separador é a barra vertical (|
), então vamos trocar $IFS
para fazer
uma leitura rápida. Note que dessa forma $IFS
será alterado somente para
executar o read
, voltando ao seu valor default após a instrução.
$ IFS='|' read Nome Nascimento HaQtoTempo Sites Yad Zenity <<< "$Saida"
$ echo $Nome ^ $Nascimento ^ $HaQtoTempo ^ $Sites ^ $Yad ^ $Zenity
Juliana ^ 01/01/2000 ^ 1,000000 ^ BR-Linux ^ TRUE ^ FALSE
Como você pode ver, em Shell é tudo muito complicado. Em uma linha monto um
formulário (sim, foi em uma linha, pois a contrabarra (\
) foi usada para
poder quebrar a linha e facilitar o entendimento) e em outra linha (a do
read
) passei todos os valores lidos para as respectivas variáveis. Ou seja,
tudo foi feito em duas linhas somente.
Também podemos customizar botões, veja:
$ yad --width 300 --entry --title "System Logout" \ --image=gnome-shutdown \ --button="_Switch User:2" \ --button="gtk-ok:0" --button="gtk-close:1" \ --text "Choose action:" \ --entry-text \ "Power Off" "Reboot" "Suspend" "Logout"
Duas coisas a destacar neste exemplo:
--entry-text
gerou uma ComboBox com os valores passados;
$?
) para serem analisados por um comando case
que viria logo a seguir.
Então pessoal, tem muito mais coisas para contar acerca do yad
, porém
temos uma limitação de espaço e por isso temos de ficar por aqui.
Para de ler este artigo e saia correndo para instalar o yad
e colocar
uma cara bonita nos seus scripts. Na vida real, não adianta nada ter um
corpinho lindo, se a cara é feia... ;)
Se você já instalou o yad
e deseja ver uma coisa inusitada, execute a
linha a seguir e clique em qualquer ícone:
$ yad --icons --read-dir=/usr/share/applications \ --width 670 --height 400 --no-buttons
SuShellso!! ;)
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários