Eu tenho um script que já funciona, porem gostaria de poder melhora-lo.
Em uma determinada parte do meu script é criado um .txt com alguns valores, sempre um valor por linha. na sequencia do script eu faço a media desses valores, como a quantidade máxima de valores para a situação em que estou lidando é de 7 números, estou usando o "cat $linha | wc -l" para determinar a quantidade de linhas e assim poder usar o bc para fazer as medias.
o script está assim:
while read linha
do
denominadorM=`cat $linha | wc -l`
if [ $denominadorM = 1 ];then
temp01=$(cat $linha | sed '1!d' | cut -d' ' -f5)
numerador=$temp01
fi
if [ $denominadorM = 2 ];then
temp01=$(cat $linha | sed '1!d' | cut -d' ' -f5)
temp02=$(cat $linha | sed '2!d' | cut -d' ' -f5)
numerador=$(echo "scale=2; $temp01 + $temp02" | bc)
fi
if [ $denominadorM = 3 ];then
temp01=$(cat $linha | sed '1!d' | cut -d' ' -f5)
temp02=$(cat $linha | sed '2!d' | cut -d' ' -f5)
temp03=$(cat $linha | sed '3!d' | cut -d' ' -f5)
numerador=$(echo "scale=2; $temp01 + $temp02 + $temp03" | bc)
fi
.
.
.
como puderam ver funciona, porem tá horrível de feio, e eu tive sorte de só haver no máximo 7 valores.
eu tentei montar um for ou um while mas não consegui ... e supondo q em futuro eu venha a precisar desse tipo de estrutura dentro de um script eu gostaria de saber fazer um laço condicional q resolvesse esse problema
alguém pode me ajudar a montar um laço condicional para isso ao invés de simplesmente repetir o if com uma quantidade maior de comandos ?