El problema esta en la linea 22, abajo entro en mas detalle en mi problema.
echo Este programa nos generara un numero aleatorio y nosotros tendremos 5 intentos para descubrirlo.
echo 'Escribe la opción que deseas:'
echo 'a)Jugar.'
echo 'b)Salir.'
read opc
case $opc in
'a')
#Declaracion de nombre aleatorio en un rango comprendido entre 0 y 100.
n=$((RANDOM%100+0))
#Este echo esta puesto para comprobar los posibles resultados
echo $n
#Bucle del juego, el cual acabara cuando los ints sea 0 o n1 sea igual a la variable random (en este caso int se igualrà a 0)
ints=5
until [ "$ints" -eq 0 ]; do
((ints=$ints-1))
echo 'Escribe un numero comprendido entre 0 y 100:'
read n1
if [ $n1 -eq $n ]; then
(( $ints= $ints - $ints )) #Esta es la linea que me da error, me sale el siguiente mensaje:
#((: 4= 4 - 4 : se intentó asignar a algo que no es una variable (el elemento de error es "= 4 - 4 ")
#me sale el mismo error al hacer '$ints=0'
echo 'El numero es correcto, has ganado, felicidades.'
else if [ $n1 -gt $n ]; then
echo 'El numero que has marcado es mayor.'
else echo 'El numero que has marcado es menor.'
fi
fi
done
;;
'b')
echo Fin del programa
;;
esac
Cuando ejecuto el programa la linea que esta despues del primer 'if' la cual hace que el bucle finalice me sale error y sigue continuando hasta que el contador(ints) es 0.
Gracias por vuestra atencion
EDIT:
Al final he modificado el codigo así y funciona:
until [ "$ints" -eq 0 ]; do
echo 'Escribe un numero comprendido entre 0 y 100:'
read n1
if [ $n1 -eq $n ]; then
echo El numero es correcto, has ganado, felicidades.
((ints=$ints-$ints))
else if [ $n1 -gt $n ]; then echo El numero que has marcado es mayor.
((ints=$ints-1))
else echo El numero que has marcado es menor.
((ints=$ints-1))
fi
fi
done