Calculadora Shell com Yad
Publicado por Raimundo Alves Portela (última atualização em 01/01/2012)
[ Hits: 7.163 ]
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
Sincronização entre Servidores de Impressão
Fazer backup de todas base de dados no PostgreSQL
Criando usuário com poderes de root
Configurador de interface de rede.
Enviar mensagem ao usuário trabalhando com as opções do php.ini
Meu Fork do Plugin de Integração do CVS para o KDevelop
Compartilhando a tela do Computador no Celular via Deskreen
Como Configurar um Túnel SSH Reverso para Acessar Sua Máquina Local a Partir de uma Máquina Remota
Configuração para desligamento automatizado de Computadores em um Ambiente Comercial
Compartilhamento de Rede com samba em modo Público/Anônimo de forma simples, rápido e fácil
Cups: Mapear/listar todas as impressoras de outro Servidor CUPS de forma rápida e fácil
Criando uma VPC na AWS via CLI
Falta pacotes de suporte ao sistema de arquivos (Gerenciador de discos... (2)
Enzo quer programar mas não faz código pra não bugar (12)
Erro de Montagem SSD Nvme (12)
WebScrapping através de screenshot devido a bloqueios de Shadow DOM (1)