Calculadora Shell com Yad
Publicado por Raimundo Alves Portela (última atualização em 01/01/2012)
[ Hits: 7.280 ]
Homepage: http://portelanet.com
Download calculadora_shell_yad.tar.gz
Script para demonstrar algumas das novidades do form no Yad, sendo a possibilidade de imprimir conteúdo dentro de um campo texto e também de podermos capturar o conteúdo de um campo texto, para ser usado em outro campo, tudo isso sem que o Dialog seja fechado.
Para imprimir conteúdo em um campo, o campo tipo BTN, deve ser iniciado com um @, e deve imprimir um texto iniciado com o número do campo a ter o conteúdo mudado,.
Exemplo:
yad --form --field='Mostrar aqui' '' --field='Testar':BTN "@echo '1:Hello world'"
No caso acima, o campo 1 é o --field='Mostrar aqui' ''.
Para capturar o texto de um campo, basta referenciar o campo, usando um %1 (primeiro campo), %2 (segundo), e assim por diante.
Exemplo:
yad --form --field='Texto' 'Hello World' --field='Testar':BTN "yad --text '%1'"
Ok, abaixo segue uma calculadora completa, usando os recursos descritos. Após descompactar, execute com o comando:
./calc_yad.sh
No código descrito, observe que é composto por 2 arquivos calc_yad.sh e calc.sh, separados por #-------------------------------------
#!/bin/bash # arquivo calc_yad.sh # Calculadora em Shell com Yad yad --form --title='Calc Shell + Yad' --columns=5 --width=400 \ --field='' '' \ --field='':LBL '' --field='':LBL '' --field='':LBL '' --field=7:BTN "@./calc.sh %1 7" --field=4:BTN "@./calc.sh %1 4" --field=1:BTN "@./calc.sh %1 1" \ --field=0:BTN "@./calc.sh %1 0" --field=8:BTN "@./calc.sh %1 8" --field=5:BTN "@./calc.sh %1 5" --field=2:BTN "@./calc.sh %1 2" \ --field='+':BTN "@./calc.sh %1 +" --field=9:BTN "@./calc.sh %1 9" --field=6:BTN "@./calc.sh %1 6" --field=3:BTN "@./calc.sh %1 3" \ --field='-':BTN "@./calc.sh %1 -" --field='/':BTN "@./calc.sh %1 /" --field='x':BTN "@./calc.sh %1 x" --field='C':BTN "@echo 1:" \ --field='=':BTN "@./calc.sh calc %1" --no-buttons # -------------------------------------------------------------------------------------------------------- #!/bin/bash # arquivo calc.sh # engine da calculadora ;-) function calc() { ajusta $* RESULTADO=$(echo $DADOS | sed 's/x/\\*/g' | xargs expr) [ "$RESULTADO" ] && echo "1:$RESULTADO" || echo '1:ERRO AO CALCULAR' } function ajusta() { CALCULAR=$1 shift for i in $* do if echo $i | egrep '\+|-|x|/' then CALCULAR="$CALCULAR $i " continue fi CALCULAR="${CALCULAR}$i" done export DADOS="$CALCULAR" } case "$1" in 'calc') shift calc $* ;; *) ajusta $* echo "1:$DADOS" ;; esac
Backup de vários servidores, diferenciado a rotina pela aplicação
Execução temporizada de programas
Relatório minuto a minuto de todas as conexões do servidor
Pós instalação para Debian 10, Ubuntu 18.04, Ubuntu 20.04, Fedora 31/Fe
Aprenda a Gerenciar Permissões de Arquivos no Linux
Como transformar um áudio em vídeo com efeito de forma de onda (wave form)
Como aprovar Pull Requests em seu repositório Github via linha de comando
Quebra de linha na data e hora no Linux Mint
Organizando seus PDF com o Zotero
tentando instalar em um notebook antigo o Linux LegacyOS_2023... [RESO... (9)
Problema com Conexão Outlook via Firewall (OpenSUSE) com Internet Fibr... (5)