Solución: Error de sintaxis cerca de un token inesperado `(& lsquo;

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 desencadenará 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 del token inesperado `('

Este mensaje de error también aparece cuando ingresa comandos en la línea de comandos de Linux para tareas cotidianas, como copiar archivos manualmente, etc.Las razones principales por las que aparece este mensaje de error es debido a una mala sintaxis o un problema del sistema operativo al interpretar los comandos de otro sistema / 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 no funcione correctamente 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 eres un principiante, es mejor que sigas tutoriales detallados del idioma / comando que estás intentando ejecutar. Probablemente haya cometido un error de sintaxis.

Solución 1: verificación de la sintaxis y el formato de los comandos

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

Además, se debe tener especial cuidado con el espacio adicional , el uso de comillas dobles y los parámetros obligatorios requeridos. Si alguno de ellos falta 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 que está ejecutando 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 podría 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 algún 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 problema del script comprobando 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 de 'vx'. Esto nos mostrará qué comandos se están ejecutando y qué valores se almacenan en el script. A través de aquí puede solucionar problemas y diagnosticar lo que está fallando.

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: usando el comando 'dos2unix.exe'

En archivos de texto de Windows / DOS, una nueva línea es una combinación de un retorno de carro (\ r) seguido de un salto de línea (\ n). En Mac (antes de Mac OS X), un salto de línea usaba un retorno de carro simple (\ r). Unix / Linux y Mac OS X utilizan saltos de línea (\ n). Si está utilizando Cygwin, no podrá procesar los scripts creados por DOS / Windows y Mac anterior debido al carácter de retorno de carro adicional (\ 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, necesita 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é tipo de errores pueden ocurrir y cómo solucionarlos.