Como fazer cálculos decimais em bash usando BC
- 2103
- 16
- Howard Fritsch
Os cálculos decimais às vezes são necessários no Bash. O Idioma de Programação de Bash de Cálculo Padrão ($ []) é incapaz de fornecer uma saída decimal. Embora possamos enganá -lo a calcular (mas não gerar) uma saída decimal multiplicando os números por exemplo, um fator de 1000 e depois fazendo uma divisão à base de texto, essa é uma solução alternativa feia e cria código complexo. No entanto, existe uma utilidade no Bash que pode fazer nativamente cálculos decimais sem truques ou soluções alternativas!
Neste tutorial, você aprenderá:
- Como usar o BC para realizar cálculos decimais
- Como fazer cálculos decimais na linha de comando Bash ou em seus scripts
- Como usar variáveis para armazenar os resultados produzidos pelo BC
- Como usar variáveis em outros cálculos
- Como evitar os erros de citação variável de bash
Requisitos de software e convenções usadas
Categoria | Requisitos, convenções ou versão de software usada |
---|---|
Sistema | Independente da distribuição Linux |
Programas | Linha de comando Bash, sistema baseado em Linux |
Outro | Qualquer utilidade que não esteja incluída no shell bash por padrão pode ser instalada usando sudo apt-get install utility-name (ou yum install para sistemas baseados em redhat) |
Convenções | # - requer que o Linux -Commands seja executado com privilégios de raiz diretamente como usuário root ou por uso de sudo comando$-exige que o Linux-Commands seja executado como um usuário não privilegiado regular |
Instalando BC
Para instalar o BC no Ubuntu, Mint ou qualquer outro sistema operacional baseado em Debian/APT, tipo:
$ sudo apt install bc
Para instalar o BC no Fedora, Redhat ou qualquer outro sistema operacional baseado em redhat/yum, tipo:
$ sudo yum install bc
Cálculos de bash padrão
Podemos fazer um problema de divisão simples diretamente no Bash:
$ echo $ [13/4] 3
Isso tenta e divide 13 por 4 usando o idioma bash padrão $ [cálculo]
. Enquanto isso é bastante versátil:
$ eco "1+1? A resposta é: $ [1 + 1] "1 + 1? A resposta é: 2
Lamentavelmente é incapaz de gerar decimais. As soluções alternativas para esse problema são complexas e feias, conforme descrito anteriormente.
BC para o resgate
Uma solução mais elegante é usar bc
para cálculos.
Embora o BC também possa ser usado para os mesmos cálculos que já é possível no Bash:
$ echo '13 / 4 '| BC 3
Também é capaz de produzir resultados baseados em decimais usando o -eu
(-eu
define a biblioteca de matemática padrão) opção para bc
:
$ echo '13 / 4 '| BC -l 3.25000000000000000000
Armazenando resultados como variáveis
Também podemos armazenar o resultado como uma variável usando uma subshell:
$ Resultado = $ (echo '13/4 '| bc -l) $ echo $ resultado 3.25000000000000000000
Aqui usamos o mesmo cálculo que no último exemplo, mas usamos uma subshell $ ()
Para fazer o cálculo. Isso nos permite armazenar o resultado em uma variável facilmente. Agora podemos usar essa variável ainda mais em outros cálculos ou simplesmente emitir o resultado como mostrado acima. Para usá -lo em outro cálculo, você pode:
$ echo "$ resultado * 4" | BC -l 13.00000000000000000000
Observe como usamos as citações duplas desta vez para definir nossa aritmética. A razão para isso é que queremos o $ Resultado
variável a ser substituída por seu valor real. Se tivéssemos usado citações únicas ('
) em vez disso, a operação teria falhado, pois o nome da variável teria sido considerado uma entrada literal. Em outras palavras, nenhuma substituição por seu valor teria acontecido, como podemos ver na seguinte saída:
$ echo '$ resultado * 4' | bc -l (padrão_in) 1: caractere ilegal: $ (padrão_in) 1: erro de sintaxe
Pronto para aprender mais festa? Explore nossa série útil de dicas e truques da linha de comando bash!
Conclusão
Neste artigo, exploramos como fazer cálculos baseados em decimais com bc
Na linha de comando. Os mesmos comandos funcionam bem quando usados em um script de shell. Também analisamos as deficiências do uso de idiomas de cálculo de bash padrão, além de usar variáveis em combinação com bc
Usando subshells. Finalmente descobrimos o que acontece se alguém cita incorretamente variáveis em bash.
Tutoriais do Linux relacionados:
- Ubuntu 20.04 truques e coisas que você pode não saber
- Exemplos úteis de linha de comando BASH - Parte 3
- Exemplos úteis de linha de comando bash e exemplos de truques - Parte 1
- Bash idiomas variáveis avançados para sensibilidade ao caso…
- Exemplos úteis de linha de comando Bash e truques - Parte 4
- Exemplos úteis de linha de comando bash e exemplos de truques - Parte 2
- Exemplos úteis de linha de comando BASH - Parte 5
- Como persistir dados para pós -grausql em java
- Gerenciamento de processos de fundo bash
- Computer Math Basics: binário, decimal, hexadecimal, octal
- « Como remover bloatware do seu telefone celular Samsung Android
- Como atualizar o Firefox no Linux »