03
janeiro 2017

Calculadora com bc e zenity

Escrito por Mario Medeiros não comentários

As vezes conseguimos fazer uns cálculos rápidos e simples de cabeça.
Outros cálculos mais complexos e que precisam ser feitos com certa rapidez, utilizamos uma calculadora.
Isso vai desde uma com operações básicas até as que possuem recursos para cálculos financeiros e/ou científicos.
A maioria dos Sistemas Operacionais (aquele que tem uma tela azul, versão 10, não se enquadra totalmente nessa classe), possuem em sua lista de programas/aplicações, alguma calculadora, mesmo que básica.
No caso do Linux, que é o Sistema Operacional em questão, ele possui a aplicação bc, dentre outras.
Não é extamente uma calculadora, mas sim uma linguagem para cálculos.

Mais detalhes sobre o bc nos links:
Artigo do site Viva O Linux em português: https://www.vivaolinux.com.br/artigos/impressora.php?codigo=4720
Site Oficial do bc em inglês: https://www.gnu.org/software/bc/

Como eu não uso os recursos complexos do bc, somente os básicos, ficou até que relativamente simples mesclar shell script, bc e zenity.

Uma calculadora básica, sem muitos detalhes.
As operações utilizadas foram as seguintes:
Adição, Multiplicação, Subtração e Divisão.

Adicionei como extra:
Potenciação, Radiciação e a Adição de vários números juntos, ou notação.

Por exemplo: 1+2+3+4+5+6+7+8+9
Que dará 45

Segue aqui o link para o arquivo ZCalc

Baixe o arquivo, descompacte em um diretório qualquer e depois dê permissões de execução: chmod +x zcalc.sh

Caso queira, crie um diretório específico para o script ou coloque no /usr/bin
Depende de sua organização.

Lembrando que a sua distro deve ter instalado o pacote do zenity.
Fiz testes com o matedialog, que faz o mesmo como o zenity.
Se utilizar o matedialog, deve-se trocar o comando zenity no script por matedialog, simplesmente.

Os testes feitos com matedialog, mesmo sem ter o ambiente Mate, funcionaram sem problemas.

Categorizado em : Linux Tags : sem tags

Escrever um comentário

Dígite o primeiro caráter da palavra id6mk0h ? :