Calculadora Shell com Yad
Publicado por Raimundo Alves Portela (última atualização em 01/01/2012)
[ Hits: 7.528 ]
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
Instale o driver proprietário Nvidia baixado do site oficial em qualquer distro
Checar tamanho do Cache do Squid e limpar
POSTFIX AUTOMÁTICO COM MYSQL E IPTABLES - ENVIA MSG CASO O USUÁRIO PASSE 90% DA SUA QUOTA
A Fundação da Confiança Digital: A Importância Estratégica de uma PKI CA na Segurança de Dados
Como enviar dicas ou artigos para o Viva o Linux
Como Ativar a Aceleração por GPU (ROCm) no Ollama para AMD Navi 10 (RX 5700 XT / 5600) no Gentoo
Cairo Dock ainda funcional nos dias de hoje
Configuração de IP fixo via nmcli e resolução de nomes via /etc/hosts no Gentoo
Removendo o bloqueio por erros de senha no Gentoo (systemd)
Papel de Parede Animado no KDE Plasma 6 (Com dicas para Gentoo)
Homebrew: o gerenciador de pacotes que faltava para o Linux!
Tentando fazer um "linux ricing" mas falhando miseravelmente... (3)
Elilo e Sofrimento no Slackware (3)
Não consigo instalar as bibliotecas em Python pelo terminal. (1)









