Arreglar el error de sintaxis de Bash cerca de un token inesperado
Miscelánea / / May 30, 2022
La codificación en Linux Bash Terminal se ha convertido en una práctica predominante en el sector de la 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 errores como el error de sintaxis cerca del token inesperado '(' o el error de sintaxis de Bash token casi inesperado, puede intentar confiar en los métodos descritos en el artículo y convertirse en un experto descifrador. Lea los métodos descritos en el artículo en el orden descrito y corrija los errores en las líneas de comando de su archivo.
Contenido
- Cómo corregir el error de sintaxis de Bash cerca de un token inesperado
- Método 1: corregir errores manualmente en cada línea de comando
- Paso I: leer el contenido del archivo
- Paso II: Elimina los saltos de línea de Windows
- Paso III: establecer permisos para el archivo recién creado
- Paso IV: Dar formato al código en el archivo
- Método 2: reescribir código
- Método 3: Utilice el comando Dos2unix.exe
Cómo corregir el error de sintaxis de Bash cerca de 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 usando el formato .sh en Linux Intento secuencias de comandos Si hay problemas de formato en el código del script de shell, es posible que se encuentre con 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 Linux Bash es un intérprete, la línea con el error se le devolverá en la 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 en particular y pasar a la siguiente para corregir el error de token inesperado en el script de shell. Las causas del error de sintaxis cerca de un token inesperado en Linux Bash se enumeran a continuación en esta sección de la siguiente manera:
- Codificación con secuencias de escape- Si ha escrito los códigos en secuencias de comandos de Bash, las secuencias de escape o las comillas en la secuencia de comandos 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 una sintaxis incorrecta, como cambiar el orden de los bucles.
- Uso incorrecto del comando- Si no está utilizando el comando correctamente, como una asignación de valor incorrecta, es posible que tenga 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, es posible que tenga un error inesperado.
- Problemas en el script bash shell- Los problemas que se ejecutan en el script bash shell en el archivo copiado de otro sistema pueden generar un error de token inesperado.
Considere un archivo llamado ejemplo.sh creado en la secuencia de comandos Linux Bash con las siguientes líneas de comando para fines explicativos. El archivo de ejemplo tiene la posibilidad de errores de sintaxis e incluye todos los comandos posibles que se pueden usar en el script de shell.
str= ‘Primera línea de comando de ‘(archivo de ejemplo)’ en el script’cadena= [(1,2),(3,4)]si[ $día == “lunes”] entonces echo "mon"más echo "no mon"fipara VARIABLE en {0..2}; despuéshacer eco comando1; comando de eco2; comando de eco3; comando de eco4; hechomientras que cierto; do if [ $ día == “lun” ]; luego echo "mon"; else echo “no mon”; hecho; fi
Método 1: corregir errores manualmente en cada línea de comando
El primer método para corregir los errores es corregir el error de sintaxis manualmente en cada línea de comando del script. Los pasos para resolver los errores de sintaxis cerca de un token inesperado en las líneas de comando se describen en esta sección. El proceso para corregir el error de token inesperado en la Terminal se describe a continuación. Ejecute el archivo en el Terminal escribiendo el ./ejemplo.sh comando y presionando el Ingresarllave.
2. Nota la líneas que tienen el error de token inesperado en las líneas de comando en el resultado a continuación.
3. arreglar el error en cada línea siguiendo los métodos discutidos a continuación individualmente y ahorro el archivo.
4. Correr el archivo nuevamente después de los cambios y verifique 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 el contenido del archivo
El primer paso para solucionar el error de sintaxis en las líneas de comando es leer el archivo en la Terminal. SI hay problemas con el archivo, es posible que no pueda verlo. La práctica habitual de ver el archivo es ejecutar el archivo usando el comando ./ejemplo.sh pero no puede modificar el contenido del 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: Mediante Comando CAT
La primera opción es utilizar el gato comando 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 comando cat –v ejemplo.sh en la Terminal.
Nota 1: los ejemplo.sh se utiliza con 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 de carro o el espacio sin interrupción.
Opción 2: Mediante Comando VX
Si no puede usar el comando cat, puede intentar usar el comando vx para ver y modificar los comandos en el archivo siguiendo el paso que se indica a continuación. Escribe el sh –vx ./ejemplo.sh comando en la Terminal para abrir el archivo.
Opción 3: A través del comando od –a
3. Si hay algunos caracteres invisibles en las líneas de comando, puede usar el comando od –a para ver el archivo. Si el contenido del archivo no está visible en el archivo de código, puede intentar leer el archivo usando el comando od –un ejemplo.sh para modificar el código.
Paso II: Elimina los saltos de línea de Windows
Si hay saltos de línea de Windows en el script de shell, puede usar los comandos de la consola para eliminar los saltos de línea y copiar las líneas de código en un nuevo archivo para corregir el error.
Ingrese el siguiente comando en la Terminal para guardar el contenido del archivo en otro archivo llamado ejemplocorregido.sh para eliminar los saltos de línea de Windows en el script.
tr-d '\r'ejemplocorregido.sh
Paso III: establecer permisos para el archivo recién creado
Debe establecer el permiso para el archivo recién creado para editar el archivo de modo que el archivo se pueda ejecutar en el shell. Escriba el comando como chmod 755 ejemplocorregido.sh en la Terminal para proporcionar los permisos al archivo y ejecutar el archivo. Ahora puede ver el archivo corregido y corregir los problemas de formato y corregir el error de sintaxis cerca del token inesperado '(' en el archivo.
Paso IV: Dar formato al código en el archivo
El segundo paso es formatear las líneas de código individualmente y modificar 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: reemplazar comillas simples con comillas dobles
Si está utilizando comillas simples en las líneas de comando, debe modificar el comando reemplazando las comillas simples con comillas dobles para corregir el error de sintaxis. En el ejemplo.sh archivo, elimine las líneas de código que tienen ‘ y ’ o el comillas simples en el comando, y reemplace las comillas simples con el doble comillas o el “ y ’’. Aquí, en el archivo de ejemplo, debe cambiar el código como str= “Primera línea de comando de “\(archivo de ejemplo)\” en el script”
Nota: Las comillas dobles son necesarias para los comandos de tipo de parámetro como cadena= “[(1,2),(3,4)]”.
Lea también:Las 20 mejores distribuciones ligeras de Linux de 2022
Opción 2: agregue $ a las líneas de cadena
Si ha agregado valores de cadena a la secuencia de comandos, debe agregar $ a los valores de cadena para corregir el error de sintaxis en la secuencia de comandos. Añade el $ para las líneas de comando con el cuerda valores para corregir el 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 está utilizando el $ en el valor de la cadena, puede omitir la secuencia de escape de la barra invertida ya que las líneas de comando están decodificadas por el estándar ANSI C. En otras palabras, al usar $ para el valor de cadena, puede evitar el uso de comillas dobles en lugar de comillas simples en las líneas de comando.
Opción 3: convertir tabulaciones en espacios
Los espacios que ha dejado entre dos declaraciones de comando tienen que ser espacios en lugar de tabulaciones para corregir el error de sintaxis en el script. Si obtiene el error en Cygwin, puede intentar convertir las pestañas de los códigos en espacios para corregir el error. La línea de comando se da a continuación como;
hacer eco comando1; comando de eco2; comando de eco3; comando de eco4; hecho
El comando anterior debe reescribirse como se muestra a continuación para corregir el error.
hacer eco comando1; comando de eco2; comando de eco3; comando de eco4; hecho
Opción 4: usar caracteres de escape
Si usa un carácter bash, es importante usar un carácter de escape junto con el carácter bash para corregir el error de sintaxis. los paréntesis o () son caracteres especiales bash en el archivo, por lo tanto, necesitaría usar el carácter de escape o el barra invertida en la línea de comando para escapar de los caracteres normales para ejecutar el comando. los str= ‘Primera línea de comando de \‘(archivo de ejemplo)\’ en el script’ El comando no daría un error en la Terminal ya que se usa el carácter de escape.
Lea también: Cómo estar entre nosotros en Linux
Opción 5: Usar espacio entre caracteres
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 carácter que se utiliza para diferenciar dos caracteres en la línea de comando. En el código, no hay espacio entre el si y [, que da el error de token inesperado como el si[ el comando no es identificado por el shell. Si el código se cambia a if [ $ día == “lun” ]; entonces el error se puede resolver como el comando de boletín de shell si se identifica por la concha.
Opción 6: use el separador de comandos para declaraciones
Los diversos comandos en el script de shell deben separarse en declaraciones para que la Terminal identifique comandos individuales. Debe usar un separador de comandos para corregir el error de sintaxis en Linux Bash. 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 el botón Ingresar llave. Por ejemplo, el comando en el código si [ $ día == “lun” ] entonces tiene que ser alterado como if [ $ día == “lun” ]; después para corregir el error. Dado que el punto y coma se utiliza como separador de comandos entre los caracteres [ y después, puede corregir este error.
Opción 7: eliminar estados de cuenta adicionales
A veces, es posible que haya agregado declaraciones adicionales o que haya mezclado los códigos en el 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 Linux Bash. Los bucles bash para… hecho o y las construcciones constructivas si… fi debe estar en la sintaxis correcta. El archivo de ejemplo tiene una sintaxis incorrecta en el por bucle tiene el término después que se utiliza en el si declaración. Modificar el código como el siguiente código solucionará el error de token inesperado. La declaración después es una declaración adicional en el código y eliminar el término corregirá el error.
para VARIABLE en {0..2}; hacer eco comando1; comando de eco2; comando de eco3; comando de eco4; hecho
Opción 8: Asegúrese de que el orden de cierre de los estados de cuenta sea el correcto
Si está utilizando muchas declaraciones de construcción anidadas o condicionales en el script de shell, debe asegurarse de que los bucles se cierren en el orden en que se abren. Puede usar un nuevo separador de línea para evitar conflictos con los bucles. El orden de cierre de los bucles anidados y las declaraciones condicionales debe ser correcto y no debe modificarse. Los bucles en el código. mientras que cierto; do if [ $ día == “lun” ]; luego echo "mon"; else echo “no mon”; hecho; fi debe cerrarse en el orden correcto. Alterar el código como se muestra a continuación puede corregir el error de token inesperado ya que se corrige el orden de cierre de las declaraciones.
mientras que cierto; do if [ $ día == “lun” ]; luego echo "mon"; else echo “no mon”; fi; hecho
Lea también:¿Qué es un intérprete de línea de comandos?
Método 2: reescribir código
Si copió el código y lo pegó en un archivo nuevo en la Terminal, puede intentar volver a escribir el código manualmente para corregir el error. Los errores en el 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 el editor de texto, como Microsoft Word, que podría haber usado para copiar y pegar el código pueden haber dado el error.
Método 3: Utilice el comando Dos2unix.exe
Si está utilizando un sistema operativo Unix, puede escribir códigos con el carácter de salto de línea como \norte para pasar a la siguiente línea del archivo. Sin embargo, si está utilizando un sistema operativo Windows, debe pasar a la siguiente línea del código utilizando el retorno de carro y el avance de línea o el \r\n en el archivo. Si ejecuta el código escrito en el sistema operativo Windows en Cygwin, es posible que obtenga el error de sintaxis cerca del token inesperado '('.
Para corregir el error, debe borrar los caracteres de retorno de carro utilizando el DOS a Unix herramienta de línea de comandos como un convertidor de formato de archivo de texto. Escriba el siguiente comando como dos2unix.exe ejemplo.sh en la Terminal y puede convertir el archivo al formato Unix.
Recomendado:
- Cómo crear una cuenta de Telegram en Android
- Solucionar error de tiempo de ejecución C++ en Windows 10
- Cómo eliminar la cuenta de Github de forma permanente
- Las 14 mejores tarjetas gráficas para Linux
El artículo ha discutido los métodos básicos para arreglar Error de sintaxis de Bash cerca de un token inesperado‘(’ en el guión. Si está usando Linux Bash, puede usar los métodos explicados en esta sección para corregir el error de sintaxis de Bash cerca de un token inesperado. Si leyó el artículo completo y encontró que el contenido es útil, háganos saber sus sugerencias y consultas en la sección de comentarios.