Solucione el error de sintaxis de Bash junto al token inesperado

toadmin. ru

La codificación en el terminal Bash de Linux se ha convertido en una práctica frecuente en el sector de la codificación. Los ingenieros de software y los estudiantes que aprenden el lenguaje de programación encuentran varios errores. Si se enfrenta repetidamente a errores como el error de sintaxis junto al token inesperado ‘(‘ o el error de sintaxis de Bash junto al token inesperado, puede intentar usar los métodos descritos en el artículo y convertirse en un programador experimentado. Lea los métodos descritos en el artículo en else describe la sección de pedido y corrige los errores en las líneas de comando de tu archivo.

Cómo corregir un error de sintaxis de Bash junto a un token inesperado

Linux Bash es un intérprete de línea de comandos para un sistema basado en Linux, que reemplaza a Bourne Shell o sh. Los archivos se nombran en formato . sh en los scripts de Linux Bash. Si hay problemas de formato en el código del script de shell, es posible que encuentre un error de sintaxis. Si el error está cerca del carácter (, el shell le pedirá un error de línea y mostrará el error en la línea correspondiente. Dado que Linux Bash es un intérprete, la línea con el error le será devuelta en la Terminal ydeje de escanear el resto de los comandos en la secuencia de comandos. Por lo tanto, debe corregir el error en una línea de comando en particular y pasar a la siguiente para corregir el error de token inesperado en la secuencia de comandos de shell. Las razones del error de sintaxis junto a inesperadotoken error en Linux Bash se enumeran a continuación en esta sección como se muestra a continuación:

  • Codificación con secuencias de escape. Si ha escrito código en un script Bash, las secuencias de escape o las comillas en el script pueden causar errores. Para corregir el error, las secuencias de escape y las comillas deben escribirse en el formato correcto.
  • Sintaxis incorrecta en el archivo de codificación. La sintaxis en el código puede causar un error de sintaxis si un comando se escribe con una sintaxis incorrecta, como cambiar el orden de los bucles.
  • Uso incorrecto de un comando. Si usa un comando incorrectamente, como asignar un valor incorrecto, es posible que tenga un error de sintaxis.
  • Sistema operativo incompatible entre sistemas. Si el shell de un script de codificación es incompatible entre los sistemas Unix y DOS, es posible que tenga un error inesperado.
  • Problemas en el script bash shell. Los problemas que se ejecutan en un script de shell bash en un archivo copiado de otro sistema pueden causar un error de token inesperado.

Considere un archivo llamado Ejemplo. Sh creado en scripts de Linux Bash con las siguientes líneas de comando para aclarar. El archivo de ejemplo admite errores de sintaxis e incluye todos los comandos posibles que se pueden usar en un script de shell.

str = 'Primera línea de comandos de' (archivo de ejemplo) 'en el script' str = [(1, 2), (3, 4)] if [$ day == "mon"] y luego echo "mon" más echo "No Mon "Fi para variable en; luego hacer echo comando1; echo comando2; echo comando3; echo comando4; hecho mientras es cierto; hacer si [$ day == "mon"]; Entonces hace eco "Mon"; más eco "no mon"; hecho; FI

Método 1: corrige los errores en cada línea de comando manualmente

La primera forma de corregir errores es corregir manualmente el error de sintaxis en cada línea de comando del script. Esta sección discute los pasos para corregir errores de sintaxis junto al token inesperado en las líneas de comando. El proceso para corregir un error de token inesperado en el terminal se describe a continuación. Ejecute el archivo en el terminal escribiendo el comando ./example. sh y presionando Enter.

2. Tenga en cuenta las líneas con el error de token inesperado en las líneas de comando de resultados a continuación.

3. Arregle el error en cada línea siguiendo los métodos debajo de uno por uno y guardando el archivo.

4. Después de realizar los cambios, ejecute el archivo nuevamente y verifique si se corrige el error de sintaxis en el archivo.

Paso I: Lea el contenido del archivo

El primer paso para corregir un error de sintaxis en la línea de comando es leer el archivo en el terminal. Si hay un problema con el archivo, es posible que no pueda ver el archivo. La práctica habitual para ver el archivo es ejecutar el archivo usando el comando ./example. sh, pero no puede cambiar el contenido del archivo. Opciones para ver el contenido del archivo y modificar las líneas de comando para corregir el error de sintaxis junto al inesperado «(‘token se analizan a continuación.

Opción 1: a través del comando CAT

La primera opción es usar el comando CAT para ver el archivo en un script de shell. Lea el contenido del archivo con el error de token inesperado usando el comando CAT escribiendo CA T-V Ejemplo. Sh en Terminal.

Nota 1. El archivo Ejemplo. SH se usa para fines explicativos, y debe ingresar el nombre del archivo con el error de token inesperado.

Nota 2. El comando CA T-V se usa para mostrar todos los caracteres invisibles, que pueden representar un retorno de carro o un espacio sin un 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 modificar los comandos en el archivo usando el paso a continuación. Escriba el comando s h-vx ./example. sh en el terminal para abrir el archivo.

Opción 3: a través del comando O D-A

3- Si hay algunos caracteres invisibles en la línea de comando, puede usar el comando O D-A 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 comando O D-A Ejemplo. SH para 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 comandos de consola para eliminar los descansos de línea y copiar las líneas de código a un nuevo archivo para corregir el error.

Escriba el siguiente comando en el terminal para guardar el contenido del archivo en otro archivo llamado CorredExample. Sh para eliminar las roturas de la línea de Windows en el script.

T r-D 'R' CorredExample. Sh

Paso III: Establezca permisos para el archivo recién creado

Debe establecer permisos para el archivo recién creado para editar el archivo para que el archivo se pueda ejecutar en un shell. Escriba un comando como CHMOD 755 CorrectedExample. SH en el terminal para otorgar 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 junto al token inesperado ‘(‘ en el archivo.

Paso IV: formatear el código en el archivo

El segundo paso es formatear las líneas de código individualmente y cambiar manualmente las líneas de comando en el archivo. Opciones para formatear el archivo para corregir el error de sintaxis junto al inesperado ‘(‘ token se discuten más adelante en esta sección.

Opción 1: Reemplace las cotizaciones individuales con cotizaciones dobles

Si usa cotizaciones individuales en la línea de comando, debe modificar el comando reemplazando las cotizaciones individuales con cotizaciones dobles para corregir el error de sintaxis. En el archivo Ejemplo. Sh, elimine las líneas de código que contienen ‘y’ o citas individuales en el comando, y reemplace las cotizaciones únicas con cotizaciones dobles o «y». Aquí, en el archivo de ejemplo, debe cambiar el código como str = «la primera línea de comando» (archivo de ejemplo) «en el script»

Nota. Se requieren cotizaciones dobles para comandos de tipo de parámetro como str = «[(1, 2), (3, 4)]».

Opción 2: Agregar $ a las cadenas de cadenas

Si agregó valores de cadena a un script, debe agregar $ a los valores de cadena para corregir un error de sintaxis en el script. Agregue $ a las cadenas de comando con valores de cadena para corregir un error inesperado. Aquí, en el archivo de ejemplo, cambie la línea de comando como;

str = $ 'Primera línea de comando de' (archivo de ejemplo) 'en el script'.

Nota. Si usa $ en un valor de cadena, puede evitar la barra invertida de secuencia de escape porque las líneas de comando se decodifican utilizando el estándar ANSI C. En otras palabras, al usar $ para un valor de cadena, puede evitar usar cotizaciones dobles en lugar de citas individuales en las líneas de comando.

Opción 3: Convertir pestañas a espacios

Los espacios que deja entre dos operadores en un comando debe ser espacios, no pestañas, para corregir un error de sintaxis en el script. Si recibe el error en CyGWin, puede intentar convertir pestañas en códigos a espacios para corregir el error. La línea de comando se muestra a continuación como;

hacer echo comando1; echo comando2; echo comando3; echo comando4; hecho

El comando anterior debe reescribirse como se muestra a continuación para corregir el error.

hacer echo comando1; echo comando2; echo comando3; echo comando4; hecho

Opción 4. Use caracteres 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. Los paréntesis o () son caracteres BASH especiales en el archivo, por lo que deberá usar el carácter de escape o la barra invertida en la línea de comando para escapar de los caracteres normales para ejecutar el comando. El comando str = ‘la primera línea de comando’ (archivo de muestra) ‘en el comando de script’ no producirá un error en el terminal porque se usa el carácter de escape.

Opción 5. Use espacios entre caracteres

El script de shell reconoce comandos y declaraciones en el script por valores predeterminados. Debe asegurarse de usar espacios entre los caracteres correctamente para que el shell pueda identificar el comando especificado en el script. Un espacio es un personaje que se usa para distinguir entre dos caracteres en una línea de comando. En el código, no hay espacio entre IF y [, lo que da el error de token inesperado como el comando if [no es identificado por el shell. Si el código se cambia a si [$ day == «Mon»]; entonces el error se puede resolver con el comando del boletín de shell si es identificado por el shell.

Opción 6: use un delimitador de comando para declaraciones

Los diversos comandos en un script de shell deben separarse en declaraciones para que el terminal pueda identificar los comandos individuales. Debe usar un delimitador de comando para corregir un error de sintaxis en Linux Bash. Las declaraciones en un comando deben estar separadas por un delimitador de comando, como un punto y coma o; o una nueva línea presionando la tecla ENTER. Por ejemplo, el comando en el código si [$ day == «Mon»] entonces debe cambiarse como si [$ day == «mon»]; luego corrija el error. Debido a que el punto y coma se usa como un separador de comando entre [y luego, 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 de la fiesta para … HEDIR o las construcciones de construcción si … Fi debe estar en elSintaxis correcta. El archivo de ejemplo tiene la sintaxis incorrecta en el bucle for para el término que se usa en la instrucción if. Modificando el código como el siguiente código solucionará el error de token inesperado. La declaración es una declaración adicional en el códigoy eliminar el término arreglará el error.

para variable en; hacer echo comando1; echo comando2; echo comando3; echo comando4; hecho

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ódigo mientras es cierto; hacer si [$ day == «mon»]; Entonces hace eco «Mon»; de lo contrario, se eco «no PN»; Hecho; FI debe cerrarse en el orden correcto. Cambiar el código como se muestra a continuación puede corregir el error de token inesperado porque se corrige el orden de las declaraciones de cierre.

mientras que es cierto; hacer si [$ day == "mon"]; Entonces hace eco "Mon"; más eco "no mon"; fi; hecho

Método 2: Reescribir el código

Si copió el código y lo pegó en un archivo nuevo en Terminal, puede intentar reescribir el código manualmente para corregir el error. Los errores de código se pueden corregir si ha escrito el código sin errores de formato en el script de shell. Esto se debe a que los caracteres ocultos y los problemas de formato en un editor de texto como Microsoft Word, que puede haber usado para copiar y pegar el código, podrían haber causado el error.

Método 3: use el comando Dos2unix. exe

Si está utilizando un sistema operativo Unix, puede escribir códigos con un carácter de avance de línea como n para pasar a la siguiente línea del archivo. Sin embargo, si está utilizando un sistema operativo Windows, debe ir a la siguiente línea del código mediante un retorno de carro y un salto de línea o rn en el archivo. Si ejecuta código escrito en Windows en Cygwin, puede obtener un error de sintaxis junto al token inesperado ‘(‘.

Para corregir el error, debe borrar los caracteres de retorno de carro utilizando la herramienta de línea de comandos de DOS en Unix como convertidor de formato de archivo de texto. Escriba el siguiente comando como dos2unix. exe ejemplo. sh en la terminal y podrá convertir el archivo a formato Unix.

Este artículo analiza los métodos básicos para corregir un error de sintaxis de Bash junto a un token inesperado ‘(‘ en una secuencia de comandos. Si está utilizando Linux Bash, puede usar los métodos descritos en esta sección para corregir un error de sintaxis de Bash junto a un token inesperadoSi leyó el artículo completo y encontró útil su contenido, por favor háganos saber sus sugerencias y preguntas en la sección de comentarios de este artículo.