Calculadora Shell com Yad
Publicado por Raimundo Alves Portela (última atualização em 01/01/2012)
[ Hits: 7.457 ]
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
Checar tamanho do Cache do Squid e limpar
linkswitch (redundância de internet)
Ajuste Dinâmico do Governador de CPU no Linux
Firewall completo com iptables
Cirurgia para acelerar o openSUSE em HD externo via USB
Void Server como Domain Control
Modo Simples de Baixar e Usar o bash-completion
Monitorando o Preço do Bitcoin ou sua Cripto Favorita em Tempo Real com um Widget Flutuante
Opções secretas em tema do Cinnamon
Como mapear unidade de rede no Linux
Como quebrar senha usando john the ripper
Alguém já testou o novo COSMIC Desktop? O que achou? (5)
Alguém pode me indicar um designer freelancer? [RESOLVIDO] (2)
Por que passar nas disciplinas da faculdade é ruim e ser reprovado é b... (2)









