Problema al igualar una variable a 0 en bash [solucionado]

Iniciado por macshivi, 30 Octubre 2016, 23:14 PM

0 Miembros y 1 Visitante están viendo este tema.

macshivi

El problema esta en la linea 22, abajo entro en mas detalle en mi problema.
Código (bash) [Seleccionar]

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 (bash) [Seleccionar]
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