removido
(usa Nenhuma)
Enviado em 09/09/2015 - 01:23h
Você pode fazer uma substituição automática para o caso de a variável ser vazia ela receber o valor zero automaticamente:
if [ -z "nota1"]; then
nota1=0
fi
Prá fazer
cálculos inteiros você pode usar:
* comando expr:
http://www.vivaolinux.com.br/artigo/expr-Definicao-e-uso-do-comando/
* comando let: let m=(a+b+c)/3
* duplo parêntesis: m=$(((a+b+c)/3))
* colchete: m=$[(a+b+c)/3]
que gerará cálculos sem casas decimais. Como a média é 4, o valor da soma tem que ser maior ou igual a 12.
Afinal. 12/3 = 4 que é a média. Então você não trabalha com divisão e apenas trabalha om somas. Faz um -lt 12 ou um -ge 12.
E com
cálculos fracionários o comando
bc:
m=$(echo -n "scale=2; ($a+$b+$c)/3.0" | bc -l)
que gerará médias com duas casas decimais. O problema fica sendo como identificar uma entrada como 1.5 ou como válida.
Como é um script, você faz a verificação de dígitos válida read a read, que fica melhor.
Prá saber se foram digitados só dígitos pode ser feita uma verificação pelo BASH na forma a=${a//[0-9]/} ou ou com sed, na forma a=$(echo -n $a | sed 's/[0-9]//g') que deverão ficar vazios se forem digitados apenas dígitos de 0 a 9.
Outra verificação é para não ser digitados números como 01 ou 0009, pois dará erro.
--
http://s.glbimg.com/po/tt/f/original/2011/10/20/a97264_w8.jpg
Encryption works. Properly implemented strong crypto systems are one of the few things that you can rely on. Unfortunately, endpoint security is so terrifically weak that NSA can frequently find ways around it. — Edward Snowden