es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Mi script de bash tiene 29 líneas, pero hay un error en la línea 30.

Soy nuevo en bash, así que estaba practicando bash y hay un error en la línea 30. pero mi script tiene 29 líneas.

El error es “./goz.sh: línea 30: error de sintaxis: fin de archivo inesperado”
¿Cuál es mi error?

Aquí está mi script:

#!/bin/bash
echo -e “¿Cuál es el origen del color de tus ojos? \n”
echo -e “Para aprender, por favor ingresa; \n”
echo -e “Para verde 1\npara café 2\npara azul 3 \npara rojo 4”

while true
do
read -p “elige un color por favor (para salir (q)): \n” goz

case $goz in
1)
echo “Mediterráneo”
;;
2)
echo “Asiático”
;;
3)
echo “Escandinavo”
;;
4)
echo “Señor Oscuro de los Sith”
;;
q | Q)
echo “saliendo”
break
;;
*)
echo “Nunca has existido.”
;;
esac
done

Tags:  , ,

Answer

  1. Avatar for davy.ai

    El script está perdido de la palabra ‘do’ después de la declaración while true.

    Aquí está el script corregido:

    #!/bin/bash
    echo -e "¿Cuál es el origen del color de tus ojos? \n"
    echo -e "Para aprender, por favor ingresa; \n"
    echo -e "Para verde 1\npara café 2\npara azul 3 \npara rojo 4"
    
    while true; do
        read -p  "elige un color por favor (para salir (q)):\n" goz
        case $goz in
            1) 
                echo "Mediterráneo"
                ;;
            2)
                echo "Asiático"
                ;;
            3)
                echo "Escandinavo"
                ;;
            4)
                echo "Señor Oscuro de los Sith"
                ;;
            q  | Q)
                echo "saliendo"
                break
                ;;
            *)
                echo "Nunca has existido."
                ;;
        esac 
    done
    

    El error ocurrió porque el bucle while no tiene la palabra ‘do’ para introducir un bloque de código que se debe ejecutar en el ciclo.

Comments are closed.