Fazendo comparações no shell com números de ponto flutuante
Publicado por Luciano Hanzo em 25/05/2024
[ Hits: 649 ]
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.
Converter maiúsculos em minúsculos e vice-versa com shell
Java no Ubuntu - Parâmetros iniciais do Tomcat (parte 3)
Backup da pasta de usuário sem copiar os arquivos ocultos
Alterar a cor que os arquivos são listados no terminal
Comando "sed" com parâmetro que aceita barra " / "
Como gerar qualquer emoji ou símbolo unicode a partir do seu teclado
Instalar e Configurar o Slackware Linux em 2025
Como configurar os repositórios do apt no Debian 12 em 2025
Passkeys: A Evolução da Autenticação Digital
Instalação de distro Linux em computadores, netbooks, etc, em rede com o Clonezilla
Muitas dificuldades ao instalar distro Linux em Notebook Sony Vaio PCG-6131L (VPCEA24FM)
Slackpkg+ (Slackpkg Plus) está de volta!
Como dividir duas janelas igualmente e lado-a-lado na sua tela
Configurando o Conky para iniciar corretamente no sistema
3 configurações básicas que podem melhorar muito a sua edição pelo editor nano
Minha rede tem um espaço invisível que não dá pra digitar o nome da re... (1)
Pedagogia no brasil não passa de alfabetização por m4sturbação mental ... (2)
compilação samba 4.22 rock linux 9.5 (3)
Erro de segmentação «Segmentation fault (core dumped)» ao retornar obj... (7)