Solución: error de sintaxis cerca del token inesperado `('

El error de sintaxis del mensaje de error cerca del token inesperado '(' ocurre en un entorno de tipo Unix, Cygwin, y en la interfaz de línea de comandos en Windows. Este error probablemente se activará cuando intente ejecutar un script de shell que fue editado o creado en sistemas DOS / Windows o Mac más antiguos.

Error de sintaxis cerca de token inesperado `('

Este mensaje de error también aparece cuando ingresa comandos en la línea de comandos de Linux para tareas cotidianas, tales como copiar archivos manualmente, etc. cáscara.

¿Qué causa el error de sintaxis cerca del token inesperado `('?

Las razones de este mensaje de error son muy diversas y no se pueden enumerar en un artículo, ya que existen miles de posibilidades de que la sintaxis salga mal al ejecutar comandos. Las razones principales de este error son:

  • Mala sintaxis al ejecutar cualquier comando en cualquiera de las plataformas. O no está utilizando el comando correctamente o ha ingresado la sintaxis incorrecta.
  • El shell no es compatible entre sistemas Unix / DOS.
  • Hay problemas al ejecutar el script de shell bash desde otra fuente .

En este artículo, asumimos que conoce los conceptos básicos de la codificación y tiene una idea de lo que está haciendo. Si es un principiante, es mejor que siga los tutoriales en profundidad del idioma / comando que está tratando de ejecutar. Probablemente haya cometido un error de alguna sintaxis.

Solución 1: Verificación de sintaxis y formato de comandos

La primera y principal razón por la que puede experimentar este mensaje de error es la sintaxis incorrecta en su código o no sigue el formato exacto de los comandos. Cada comando tiene un formato predefinido que puede ver en su documentación. Varios parámetros son opcionales y otros son obligatorios.

Además, se debe tener especial cuidado con el espacio extra, el uso de comillas dobles y los parámetros obligatorios requeridos. Si falta alguno de ellos o se ha declarado incorrectamente, no podrá ejecutar su código.

Por ejemplo, en lugar del siguiente código

 [mycom7] # ./ctopo.sh um_test1 [(1, 2), (2, 1)] 

Necesitas ejecutarlo como

 [mycom7] # ./ctopo.sh um_test1 "[(1, 2), (2, 1)]" 

Además, asegúrese de ejecutar sus comandos / script de shell correctamente si abarca varias líneas.

Debido al tipo de parámetro, las comillas dobles son necesarias. Un espacio adicional también puede arruinar su código y forzar el mensaje de error. Asegúrese de verificar la documentación oficial del comando que está ejecutando y ver si hay un problema allí.

Solución 2: Solución de problemas de su script de shell

Si está utilizando un script de shell que funciona en el sistema de origen pero devuelve un error en el destino, puede solucionar el script verificando las variables que se almacenan durante la ejecución y luego ver qué está causando el problema. Esta es una causa muy común ya que en varios casos, el shell intenta interpretar un carácter no imprimible.

Intente ejecutar el shell con el parámetro 'vx'. Esto nos mostrará qué comandos se ejecutan y qué valores se almacenan en el script. Por aquí puede solucionar problemas y diagnosticar lo que está sucediendo mal.

Por ejemplo, ejecute el script en la terminal después de incluir 'vx' como:

 # sh -vx ./test_script5.sh 

Puede verificar el contenido del script usando el comando 'cat' como:

 # cat test_script5.sh 

Solución 3: uso del comando 'dos2unix.exe'

En los archivos de texto de Windows / DOS, una nueva línea es una combinación de un retorno de carro (\ r) seguido de un avance de línea (\ n). En Mac (antes de Mac OS X), un salto de línea utilizaba un simple retorno de carro (\ r). Unix / Linux y Mac OS X usan saltos de línea de salto de línea (\ n). Si está utilizando Cygwin, no podrá procesar las secuencias de comandos creadas por DOS / Windows y Mac anterior debido al carácter adicional de retorno de carro (\ r).

Usando el comando 'dos2unix.exe'

Aquí puede hacer el comando 'dos2unix.exe' que convertirá el script al formato correcto y luego podrá ejecutarlo sin ningún problema.

Para concluir, debe investigar sus comandos y el tipo de plataforma que está utilizando y asegurarse de que no haya discrepancias. Dado que no podemos cubrir todas y cada una de las posibilidades, tendrá una idea de qué tipos de errores pueden ocurrir y cómo solucionarlos.

Artículos De Interés