Pesquisa de site

5 maneiras úteis de fazer aritmética no terminal Linux


Neste artigo, mostraremos várias maneiras úteis de fazer contas no terminal Linux. Ao final deste artigo, você aprenderá diferentes maneiras práticas básicas de fazer cálculos matemáticos na linha de comando.

Vamos começar!

1. Usando Bash Shell

A primeira e mais fácil maneira de fazer matemática básica na CLI do Linux é usar parênteses duplos. Aqui estão alguns exemplos onde usamos valores armazenados em variáveis:

ADD=$(( 1 + 2 ))
echo $ADD
MUL=$(( $ADD * 5 ))
echo $MUL
SUB=$(( $MUL - 5 ))
echo $SUB
DIV=$(( $SUB / 2 ))
echo $DIV
MOD=$(( $DIV % 2 ))
echo $MOD

2. Usando o comando expr

O comando expr avalia expressões e imprime o valor da expressão fornecida na saída padrão. Veremos diferentes maneiras de usar expr para fazer contas simples, fazer comparações, incrementar o valor de uma variável e encontrar o comprimento de uma string.

A seguir estão alguns exemplos de como fazer cálculos simples usando o comando expr. Observe que muitos operadores precisam ser escapados ou colocados entre aspas para shells, por exemplo, o operador * (veremos mais na comparação de expressões).

expr 3 + 5
expr 15 % 3
expr 5 \* 3
expr 5 – 3
expr 20 / 4

A seguir, abordaremos como fazer comparações. Quando uma expressão é avaliada como falsa, expr imprimirá um valor 0, caso contrário, imprimirá 1.

Vejamos alguns exemplos:

expr 5 = 3
expr 5 = 5
expr 8 != 5
expr 8 \> 5
expr 8 \< 5
expr 8 \<= 5

Você também pode usar o comando expr para incrementar o valor de uma variável. Dê uma olhada no exemplo a seguir (da mesma forma, você também pode diminuir o valor de uma variável).

NUM=$(( 1 + 2))
echo $NUM
NUM=$(expr $NUM + 2)
echo $NUM

Vejamos também como encontrar o comprimento de uma string usando:

expr length "This is linux-console.net"

Para obter mais informações, especialmente sobre o significado dos operadores acima, consulte a página de manual expr:

man expr

3. Usando o comando bc

bc (Calculadora Básica) é um utilitário de linha de comando que fornece todos os recursos que você espera de uma simples calculadora científica ou financeira. É especificamente útil para fazer matemática de ponto flutuante.

Se o comando bc não estiver instalado, você poderá instalá-lo usando:

sudo apt install bc   #Debian/Ubuntu
sudo yum install bc   #RHEL/CentOS
sudo dnf install bc   #Fedora 22+

Uma vez instalado, você pode executá-lo em modo interativo ou não interativo, passando argumentos para ele – veremos ambos os casos. Para executá-lo de forma interativa, digite o comando bc no prompt de comando e comece a fazer algumas contas, conforme mostrado.

bc 

Os exemplos a seguir mostram como usar bc de forma não interativa na linha de comando.

echo '3+5' | bc
echo '15 % 2' | bc
echo '15 / 2' | bc
echo '(6 * 2) - 5' | bc

O sinalizador -l é usado para a escala padrão (dígitos após a vírgula decimal) para 20, por exemplo:

echo '12/5 | bc'
echo '12/5 | bc -l'

4. Usando o comando Awk

Awk é um dos programas de processamento de texto mais proeminentes no GNU/Linux. Ele suporta operadores aritméticos de adição, subtração, multiplicação, divisão e módulo. Também é útil para fazer matemática de ponto flutuante.

Você pode usá-lo para fazer matemática básica, conforme mostrado.

awk 'BEGIN { a = 6; b = 2; print "(a + b) = ", (a + b) }'
awk 'BEGIN { a = 6; b = 2; print "(a - b) = ", (a - b) }'
awk 'BEGIN { a = 6; b = 2; print "(a *  b) = ", (a * b) }'
awk 'BEGIN { a = 6; b = 2; print "(a / b) = ", (a / b) }'
awk 'BEGIN { a = 6; b = 2; print "(a % b) = ", (a % b) }'

Se você é novo no Awk, temos uma série completa de guias para você começar a aprendê-lo: Aprenda a ferramenta de processamento de texto do Awk.

5. Usando o comando fator

O comando factor é usado para decompor um número inteiro em fatores primos. Por exemplo:

factor 10
factor 127
factor 222
factor 110  

Isso é tudo! Neste artigo, explicamos várias maneiras úteis de fazer aritmética no terminal Linux. Sinta-se à vontade para fazer qualquer pergunta ou compartilhar suas idéias sobre este artigo por meio do formulário de feedback abaixo.