Calculadora Shell com Yad
Publicado por Raimundo Alves Portela (última atualização em 01/01/2012)
[ Hits: 7.382 ]
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
Instalação completa de servidor de e-mail
Desligamento programado com interface gráfica em Zenity
video2gif: converta videoclipes em GIFs animados
Script Firewall - Regras do Iptables
Como extrair chaves TOTP 2FA a partir de QRCODE (Google Authenticator)
Linux em 2025: Segurança prática para o usuário
Desktop Linux em alta: novos apps, distros e privacidade marcam o sábado
IA chega ao desktop e impulsiona produtividade no mundo Linux
Novos apps de produtividade, avanços em IA e distros em ebulição agitam o universo Linux
Como instalar o repositório do DBeaver no Ubuntu
Como instalar o Plex Media Server no Ubuntu
Digitando underscore com "shift" + "barra de espaços"
Como ativar a lixeira e recuperar aquivos deletados em um servidor Linux
Como mudar o nome de dispositivos Bluetooth via linha de comando
O programa assinador digital (0)
dpkg: erro: gatilho de arquivo duplicado chamado pelo arquivo de nome (6)
Instalação não está resolvendo as dependencias (2)
Captação de áudio no zorin linux começa a diminuir com o tempo (5)









