msoliver
(usa Debian)
Enviado em 04/12/2021 - 20:53h
Entendi, eu não tinha entendido qual parte só mexia com inteiros
O BASH, em operações matemáticas!
((expressão)), [ expressão ] Ou [[ expessão ]]
----------------------------------------------------------------
Edit: acho que comparou sim, usando o if convencional...
Ele aceita apenas inteiros, ou mexe com float também?
Achei o código um pouco confuso para entender essa parte
Não vou RESPONDER! :)
--------------------------------------------------------------------------------------------------------
Segue o script (Novamente),
Agora com comentários...
#!/usr/bin/env bash
lin='------------------------------';
printf "\x1bc ${lin}\n Calculadora de Notas.\n ${lin}\n";
#Um laço para pegar as variáveis: 1º,2º,3º Bimestre e media
for n in {1..4};do
(($n<=3)) && ttlo=" Nota do ${n}º Bimestre: " || ttlo=" Informe a Média: "
read -p "$ttlo" temp ;
nota[$n]="$temp"; #Armazena em uma matriz/array
done
media=${nota[4]}; #Pega o valor da matriz[4], e coloca na var media
unset nota[4]; #elimina a var nota[4]
alvo=$((media*4)); #Sem comentários
printf " $lin\n Calculando:\n";sleep 0.25;
printf " $lin\n";
soma=$(awk '{printf "%.2f",($1+$2+$3)}' <<< "${nota[@]}") # Soma os valores da matriz, que tem as notas do 1º, 2º e 3º bimestre.
stt=$(bc <<< "${soma} < ${alvo}") #faz a comparação, Resposta é 1 (verdadeiro) ou 0 (Falso), Veja man bc
if ((${stt} > 0));then
echo " Precisa de: $(awk '{printf "%.2f",($1-$2)}' <<< "$alvo $soma") pontos no 4º Bimestre."
else
printf " Aprovado:\n Pontos: $soma\n Media: $(bc <<< "scale=2;$soma/4")\n"
fi
printf " ${lin}\n";
Espero do fundo de minha alma, que agora você entenda... :) :) :)
E, MARQUE a MELHOR RESPOSTA, como sempre faz.
______________________________________________________________________
Importante:
lynx --dump
https://www.vivaolinux.com.br/termos-de-uso/|sed -nr '/^[ ]+Se/,/dou.$/p'
______________________________________________________________________
Nota de esclarecimento:
O comando:
ACIMA , faz parte da minha assinatura.
Att.: Marcelo Oliver
______________________________________________________________________