La codificación en el terminal de Bash Linux se ha convertido en una práctica predominante en el sector de codificación. Los ingenieros de software y los estudiantes que aprenden el lenguaje de codificación se encuentran con varios errores. Si ha visto repetidamente los errores como el error de sintaxis cerca del token inesperado '(' o el error de sintaxis bash cerca del token inesperado, puede intentar confiar en los métodos descritos en el artículo y convertirse en un codificador competente. Lea los métodos descritos en el artículo en el orden descrito y corregir los errores en las líneas de comando en su archivo.
Cómo corregir el error de sintaxis bash casi un token inesperado
Linux Bash es un intérprete de línea de comandos para el sistema basado en Linux y es un reemplazo para Bourne Shell o SH. Los archivos se nombran utilizando el formato .sh en el LinuxIntentoScripting. Si hay problemas de formato en el código en el script de shell, puede enfrentar un error de sintaxis. Si el error está cerca del(Carácter, el shell le indicará el error en la línea y mostrará el error en la línea correspondiente. Dado que el Linux Bash es un intérprete, la línea con el error se le devolverá en el terminal y dejará de escanear el resto de los comandos en el script. Por lo tanto, debe corregir el error en la línea de comando particular y continuar con la siguiente para corregir el error de token inesperado en el script de shell. Las causas del error de sintaxis casi inesperado en la fiesta de Linux se enumeran a continuación en esta sección como se muestra a continuación:
- Codificación con secuencias de escape-Si ha escrito los códigos en Scripting bash, las secuencias de escape o las comillas en el script pueden causar errores. Las secuencias de escape y las comillas deben escribirse en el formato correcto para corregir el error.
- Sintaxis incorrecta en el archivo de codificación-La sintaxis en el código puede dar el error de sintaxis si el comando está escrito en la sintaxis incorrecta, como cambiar el orden de los bucles.
- Uso incorrecto del comando-Si no está utilizando el comando correctamente, como la asignación de valor incorrecto, puede tener un error de sintaxis.
- Sistema operativo incompatible en los sistemas-Si el shell para el script de codificación no es compatible entre los sistemas UNIX y DOS, puede tener un error inesperado.
- Problemas en el script de shell bashLos problemas que se ejecutan en el script de shell bash en el archivo copiado de otro sistema pueden dar el error de token inesperado.
Considere un archivo llamadoEjemplo.shCreado en la secuencia de comandos de Linux Bash con las siguientes líneas de comando para fines explicativos. El archivo de ejemplo tiene las posibilidades de errores de sintaxis e incluye todos los comandos posibles que se pueden usar en el script de shell.
str= ‘First command line of ‘(example file)’ in the script’ str= [(1,2),(3,4)] if[ $day == “mon” ] then echo “mon” else echo “no mon” fi for VARIABLE in {0..2}; then do echo command1; echo command2; echo command3; echo command4; done while true; do if [ $ day == “mon” ]; then echo “mon”; else echo “not mon”; done; fi
Método 1: Arreglar los errores manualmente en cada línea de comandos
El primer método para corregir los errores es corregir el error de sintaxis manualmente en cada línea de comando en el script. En esta sección se discuten los pasos para resolver los errores de sintaxis casi inesperados en las líneas de comando. El proceso para corregir el error de token inesperado en el terminal se describe a continuación. Ejecute el archivo en elTerminalescribiendo el./example.shcomandar y presionar elIngresar llave.
2. Tenga en cuenta elpautaque tienen el error de token inesperado en las líneas de comando en el resultado a continuación.
3.Corrige el erroren cada línea siguiendo los métodos discutidos a continuación individualmente yahorroel archivo.
4.CorrerEl archivo nuevamente después de los cambios y verifica si el error de sintaxis se resuelve en el archivo.
Lea también: Cómo instalar Linux Bash Shell en Windows 10
Paso I: Leer contenido del archivo
El primer paso para resolver el error de sintaxis en las líneas de comando es leer el archivo en el terminal. Si hay problemas con el archivo, es posible que no pueda ver el archivo. La práctica regular de ver el archivo es ejecutar el archivo usando el comando./example.shPero no puede modificar el contenido en el archivo. Las opciones para ver el contenido del archivo y modificar las líneas de comando para corregir el error de sintaxis cerca del token inesperado '(' se analizan a continuación.
Opción 1: a través del comando CAT
La primera opción es usar elgatoComando para ver el archivo en el script de shell. Lea el contenido del archivo con el error de token inesperado usando el comando CAT escribiendo el comandoCat -V Ejemplo.shen la terminal.
Nota 1:ElEjemplo.shse usa para fines explicativos y debe escribir el nombre del archivo que tiene el error de token inesperado.
Nota 2:El comando CAT –V se usa para mostrar todos los caracteres invisibles que probablemente representen el retorno del carro o el espacio sin descanso.
Opción 2: a través del comando VX
Si no puede usar el comando CAT, puede intentar usar el comando VX para ver y alterar los comandos en el archivo utilizando el paso que se da a continuación. Escriba elsh –vx ./example.shcomandar en el terminal para abrir el archivo.
Opción 3: a través de OD –A comando
3. Si hay algunos caracteres invisibles en las líneas de comando, puede usar el comando OD para ver el archivo. Si el contenido del archivo no es visible en el archivo de código, puede intentar leer el archivo usando el comandode –Un ejemplo.shpara modificar el código.
Paso II: eliminar los descansos de la línea de Windows
Si hay roturas de la línea de Windows en el script de shell, puede usar los comandos de la consola para eliminar las rupturas de línea y copiar las líneas de código a un nuevo archivo para corregir el error.
Ingrese el siguiente comando en el terminal para guardar el contenido en el archivo en otro archivo nombradoCorrectedExample.shPara eliminar la línea de Windows se rompe en el script.
tr –d ‘\r’ <example.sh> correctedexample.sh
Paso III: Establezca permisos en el archivo recién creado
Debe establecer el permiso al archivo recién creado para editar el archivo para que el archivo pueda ejecutarse en el shell. Escriba el comando comoCHMOD 755 CorredExample.SHen el terminal para proporcionar los permisos al archivo y ejecutar el archivo. Ahora puede ver el archivo corregido y solucionar los problemas de formato y corregir el error de sintaxis cerca del token inesperado '(' en el archivo.
Paso IV: Código de formato en el archivo
El segundo paso es formatear las líneas de código individualmente y alterar las líneas de comando manualmente en el archivo. Las opciones para formatear el archivo para corregir el error de sintaxis cerca del token inesperado '(' se analizan a continuación en esta sección.
Opción 1: Reemplace las cotizaciones individuales con cotizaciones dobles
Si está utilizando las cotizaciones individuales en las líneas de comando, debe alterar el comando reemplazando la cotización única con cotizaciones dobles para corregir el error de sintaxis. En elEjemplo.sharchivo, elimine las líneas de código que tienen'y'o elcitas individualesen el comando, y reemplace las citas individuales con elcitas dobleso el"y''. Aquí, en el archivo de ejemplo, debe cambiar el código comostr = "Primera línea de comando de" \ (archivo de ejemplo) \ "en el script"
Nota:Las cotizaciones dobles son necesarias para los comandos de tipo de parámetro, comostr = "[(1,2), (3,4)]".
Lea también: 20 Las mejores distribuciones de Linux livianas de 2022
Opción 2: Agregar $ a las líneas de cadena
Si ha agregado valores de cadena al script, debe agregar un $ a los valores de cadena para corregir el error de sintaxis en el script. Agregar el$Para las líneas de comando con elcadenavalores para corregir el error inesperado. Aquí, en el archivo de ejemplo, cambie la línea de comando como;
str= $ ‘First command line of ‘\(example file)\’ in the script’
Nota:Si esta utilizando el$En el valor de la cadena, puede omitir la secuencia de escape de barra de barra de barra de inicio ya que las líneas de comando están decodificadas por el estándar ANSI C. En otras palabras, al usar un valor $ para cadena, puede evitar usar las cotizaciones dobles en lugar de las cotizaciones individuales en las líneas de comando.
Opción 3: Convertir pestañas a espacios
Los espacios que ha dejado entre dos declaraciones en el comando deben ser espacios en lugar de pestañas para corregir el error de sintaxis en el script. Si recibe el error en CyGWin, puede intentar convertir las pestañas en los códigos a espacios para corregir el error. La línea de comando se da a continuación como;
do echo command1; echo command2; echo command3; echo command4; done
El comando anterior debe reescribirse como se muestra a continuación para corregir el error.
do echo command1; echo command2; echo command3; echo command4; done
Opción 4: Use personajes de escape
Si está utilizando un personaje de Bash, es importante usar un carácter de escape junto con el carácter de bash para corregir el error de sintaxis. Elparéntesiso()son caracteres especiales bash en el archivo, por lo tanto, necesitaría usar el carácter de escape o elbartosaen la línea de comando para escapar de los caracteres normales para ejecutar el comando. Elstr = 'Primera línea de comando de \' (archivo de ejemplo) \ 'en el script'El comando no daría un error en el terminal a medida que se use el carácter de escape.
Lea también:Cómo llegar entre nosotros en Linux
Opción 5: Use el espacio entre los personajes
El script de shell reconoce los comandos y declaraciones en el script por los valores predeterminados. Debe garantizar el uso adecuado del espacio entre los caracteres para que el shell pueda identificar el comando dado en el script. El espacio es un personaje que se usa para diferenciar dos caracteres en la línea de comando. En el código, no hay espacio entre elsiy[, que da el error de token inesperado como elsi[El comando no es identificado por el shell. Si el código se cambia aif [$ day == "Mon"];entonces el error se puede resolver como el comando del boletín de shellsise identifica por el caparazón.
Opción 6: Use el separador de comando para declaraciones
Los diversos comandos en el script de shell deben separarse en declaraciones para el terminal para identificar comandos individuales. Debe usar un separador de comando para corregir el error de sintaxis en la fiesta de Linux. Las declaraciones en el comando deben estar separadas por un separador de comando, como un punto y coma o un;o una nueva línea presionando elIngresarllave. Por ejemplo, el comando en el códigoSi [$ day == "Mon"] entoncestiene que ser alterado comoif [$ day == "Mon"]; entoncesPara corregir el error. Dado que el punto y coma se usa como el separador de comando entre los caracteres[yentonces, puede corregir este error.
Opción 7: eliminar declaraciones adicionales
A veces, puede haber agregado declaraciones adicionales o puede haber mezclado los códigos en caso de múltiples bucles anidados. Debe eliminar las declaraciones adicionales en las líneas de comando para corregir el error de sintaxis cerca del token inesperado '(' en la fiesta de Linux. Los bucles Bashpara ... hechoo y las construcciones de construcciónSi ... Finecesita estar en la sintaxis correcta. El archivo de ejemplo tiene la sintaxis incorrecta en elparael bucle tiene el términoentoncesque se usa en elsideclaración. Modificar el código como el siguiente código solucionará el error de token inesperado. La declaraciónentonceses una declaración adicional en el código y eliminar el término se solucionará el error.
for VARIABLE in {0..2}; do echo command1; echo command2; echo command3; echo command4; done
Opción 8: Asegúrese de que el orden de cierre de declaraciones sea correcto
Si está utilizando muchas declaraciones de construcción anidada o condicional en el script de shell, debe asegurarse de que los bucles estén cerrados en el orden que se abren. Puede usar un nuevo separador de línea para evitar conflictos con los bucles. El orden de cerrar los bucles anidados y las declaraciones condicionales debe ser correcta y no debe ser alterada. Los bucles en el códigomientras que es cierto; hacer si [$ day == "mon"]; Entonces hace eco "Mon"; más eco "no mon"; hecho; FIdebe cerrarse en el orden correcto. Alterar el código como se muestra a continuación puede corregir el error de token inesperado a medida que se corrige el orden del cierre de las declaraciones.
while true; do if [ $ day == “mon” ]; then echo “mon”; else echo “not mon”; fi; done
Lea también: ¿Qué es un intérprete de línea de comando?
Método 2: Código de reescritura
Si ha copiado el código y lo ha pegado a un nuevo archivo en el terminal, puede intentar reescribir el código manualmente para corregir el error. Los errores en el código se pueden solucionar si ha escrito el código sin ningún error de formato en el script de shell. Esto se debe a que los caracteres ocultos y los problemas de formato en el editor de texto, como Microsoft Word, es posible que haya usado para copiar y pegar el código puede haber dado el error.
Método 3: Use el comando dos2unix.exe
Si está utilizando un sistema operativo UNIX, puede escribir códigos con el carácter de alimentación de línea como\nortepara moverse a la siguiente línea en el archivo. Sin embargo, si está utilizando un sistema operativo Windows, debe moverse a la siguiente línea en el código utilizando el retorno de carro y la alimentación de la línea o el\ r \ nen el archivo. Si ejecuta el código escrito en el sistema operativo Windows en el cygwin, puede obtener el error de sintaxis cerca del token inesperado '('.
Para corregir el error, debe borrar los caracteres de retorno del carro utilizando elDos a UnixHerramienta de línea de comandos como un convertidor de formato de archivo de texto. Escriba el siguiente comando comodos2unix.exe Ejemplo.Shen el terminal y puede convertir el archivo en el formato UNIX.
Recomendado:
- Cómo crear una cuenta de telegrama en Android
- Corrige el error de tiempo de ejecución C ++ en Windows 10
- Cómo eliminar la cuenta de GitHub permanentemente
- Top 14 mejores tarjeta gráfica para Linux
El artículo ha discutido los métodos básicos para arreglarError de sintaxis bash cerca de token inesperado '('en el guión. Si está utilizando una fiesta de Linux, puede usar los métodos explicados en esta sección para corregir el error de sintaxis bash cerca del token inesperado. Si ha leído el artículo completo y ha encontrado que el contenido es útil, háganos saber sus sugerencias y consultas en la sección de comentarios.