No terminan de adaptarse tus soluciones a mi intención... todo mi "problema" se centra en la sentencia test ... solo quiero simplificarla..... y no es vital hacerlo... es ya saber cómo hacerlo si se puede....
Te mereces ver el supercódigo que he creado...... y buen tino.... es una "calculadora" adaptada a una prueba concreta para los alumnos... ... ahí va... a ver si ves alguna manera de simplificar la línea que puse en el primer post... Lo suelo arrancar mandando la salida de errores a /dev/null....
Al margen del asunto principal... si ves alguna "catetada" en el código, puedes comentarme lo que te parezca... solo quiero ir mejorando poco a poco....
#!/bin/bash
b=s
while [ $b = s ]
do
clear
r=(20 30 40 50 70 30 50 60 70 80)
o=(30 40 50 30 40 50 50 60 70 80)
califr=(n n n n n n n n n n)
califo=(n n n n n n n n n n)
for k in 0 1 2 3 4 5 6 7 8 9
do
until [ ${califr[$k]} = c -o ${califr[$k]} = x -o ${califr[$k]} = l ] #ESTO NO ME GUSTA ASI
do
echo -n "CALIFICACION Ritmo $((k+1)):"
read califr[$k]
if [ ${califr[$k]} != c -a ${califr[$k]} != x -a ${califr[$k]} != l ]
then
echo 'TE HAS EQUIVOCADO!!!.... REPITE ESTE DATO!!!'
fi
done
done
echo ${califr
Te mereces ver el supercódigo que he creado...... y buen tino.... es una "calculadora" adaptada a una prueba concreta para los alumnos... ... ahí va... a ver si ves alguna manera de simplificar la línea que puse en el primer post... Lo suelo arrancar mandando la salida de errores a /dev/null....
Al margen del asunto principal... si ves alguna "catetada" en el código, puedes comentarme lo que te parezca... solo quiero ir mejorando poco a poco....
#!/bin/bash
b=s
while [ $b = s ]
do
clear
r=(20 30 40 50 70 30 50 60 70 80)
o=(30 40 50 30 40 50 50 60 70 80)
califr=(n n n n n n n n n n)
califo=(n n n n n n n n n n)
for k in 0 1 2 3 4 5 6 7 8 9
do
until [ ${califr[$k]} = c -o ${califr[$k]} = x -o ${califr[$k]} = l ] #ESTO NO ME GUSTA ASI
do
echo -n "CALIFICACION Ritmo $((k+1)):"
read califr[$k]
if [ ${califr[$k]} != c -a ${califr[$k]} != x -a ${califr[$k]} != l ]
then
echo 'TE HAS EQUIVOCADO!!!.... REPITE ESTE DATO!!!'
fi
done
done
echo ${califr
- }
echo
for k in 0 1 2 3 4 5 6 7 8 9
do
until [ ${califo[$k]} = c -o ${califo[$k]} = x -o ${califo[$k]} = l ]
do
echo -n "CALIFICACION Oido $((k+1)):"
read califo[$k]
if [ ${califo[$k]} != c -a ${califo[$k]} != x -a ${califo[$k]} != l ]
then
echo 'TE HAS EQUIVOCADO!!!.... REPITE ESTE DATO!!!'
fi
done
done
echo ${califo - }
echo
for k in 0 1 2 3 4 5 6 7 8 9
do
case ${califr[$k]} in
c) califr_n[$k]=${r[$k]};;
x) califr_n[$k]=0;;
l) califr_n[$k]=$((${r[$k]}/2));;
esac
done
echo PARCIAL DE RITMO:
echo ${califr_n - }
echo
for k in 0 1 2 3 4 5 6 7 8 9
do
case ${califo[$k]} in
c) califo_n[$k]=${o[$k]};;
x) califo_n[$k]=0;;
l) califo_n[$k]=$((${o[$k]}/2));;
esac
done
echo PARCIAL DE OIDO:
echo ${califo_n - }
echo
sum_rit=0
for k in 0 1 2 3 4 5 6 7 8 9
do
sum_rit=$((sum_rit+califr_n[$k]))
done
echo "SUMA TOTAL DE RITMO ES: $sum_rit"
sum_oid=0
for k in 0 1 2 3 4 5 6 7 8 9
do
sum_oid=$((sum_oid+califo_n[$k]))
done
echo "SUMA TOTAL DE OIDO ES: $sum_oid"
suma_tot=$((sum_rit+sum_oid))
echo
echo "****************************"
echo "LA SUMA TOTAL ES: $suma_tot"
echo "****************************"
echo
echo -n "¿OTRO ALUMNO? (s/n): "
read b
done
exit