Código
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:
Código
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