Fazendo comparações no shell com números de ponto flutuante
Publicado por Luciano Hanzo em 25/05/2024
[ Hits: 665 ]
bc
para essas operações.#!/bin/bash
# Fazendo comparações no shell, com números de ponto flutuante.
# Nesse exemplo, mostro como fazer um loop, com números de ponto flutuante.
# Repare que as variáveis estão com a primeira letra maiúscula.
Nu=1.11144 # Inicializa a variável Nu com um valor de ponto flutuante
Max=10.567 # Define o valor máximo para a comparação
# Realiza uma comparação inicial usando bc e armazena o resultado na variável Cond.
Cond=$(bc <<< "$Nu < $Max")
# Enquanto a condição for verdadeira (Cond igual a 1), o loop continuará executando.
while [ $Cond == 1 ]; do
echo "Número : $Nu" # Exibe o valor atual de Nu
# Incrementa Nu em 1.33 usando bc e atualiza o valor de Nu
Nu=$(bc <<< "$Nu + 1.33")
# Atualiza a condição para a próxima iteração do loop
Cond=$(bc <<< "$Nu < $Max")
done
Nu=1.11144
: Define a variável Nu
com um valor inicial de ponto flutuante.Max=10.567
: Define a variável Max
como o valor limite para o loop.Cond=$(bc <<< "$Nu < $Max")
: Utiliza a calculadora bc
para comparar Nu
com Max
. O resultado da comparação (1
para verdadeiro ou 0
para falso) é armazenado na variável Cond
.while [ $Cond == 1 ]; do
: O loop continuará executando enquanto Cond
for igual a 1
(ou seja, enquanto Nu
for menor que Max
).echo "Número : $Nu"
: Exibe o valor atual de Nu
no terminal.Nu=$(bc <<< "$Nu + 1.33")
: Incrementa Nu
em 1.33
usando bc
e atualiza o valor de Nu
.Cond=$(bc <<< "$Nu < $Max")
: Recalcula a condição para a próxima iteração do loop.bc
. Adaptar este script às suas necessidades específicas permitirá que você realize operações matemáticas mais complexas diretamente no seu shell script.OverWatch 2 - Abrindo portas do jogo no Iptables.
Onde está a linha que preciso editar? [Resolvido]
Dica para automatizar suas tarefas diárias [Iniciante]
Backup da pasta de usuário sem copiar os arquivos ocultos
Highlighting: Destacando Códigos Bash Script no Eclipse
Programa IRPF - Guia de Instalação e Resolução de alguns Problemas
Criando uma Infraestrutura para uma micro Empresa
Criar entrada (menuentry) ISO no Grub
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalando o Pi-Hole versão v5.18.4 depois do lançamento da versão v6.0
Instalar o VIM 9.1 no Debian 12
Como saber o range de um IP público?
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
problema para barrar sites/downloas via HTTPS. (1)
Liberação de alguns links no squid (20)