Correction: Erreur de syntaxe près du jeton inattendu `('

L'erreur de syntaxe du message d' erreur près du jeton inattendu `(' se produit dans un environnement de type Unix, Cygwin, et dans l'interface de ligne de commande de Windows. Cette erreur sera probablement déclenchée lorsque vous essayez d'exécuter un script shell qui a été modifié ou modifié. créé sur des systèmes DOS / Windows ou Mac plus anciens.

Erreur de syntaxe près du jeton inattendu `('

Ce message d'erreur apparaît également lorsque vous entrez des commandes dans la ligne de commande Linux pour des tâches quotidiennes telles que la copie manuelle de fichiers, etc. Ce message d'erreur se produit principalement en raison d'une syntaxe incorrecte ou en raison d'un problème de l'OS lors de l'interprétation des commandes d'un autre système / coquille.

Qu'est-ce qui cause l'erreur de syntaxe près du jeton inattendu `('?

Les raisons de ce message d'erreur sont très diverses et ne peuvent pas être répertoriées dans un article car il existe des milliers de possibilités de syntaxe erronée lors de l'exécution de commandes. Les principales raisons de cette erreur sont les suivantes:

  • Mauvaise syntaxe lors de l'exécution d'une commande sur l'une ou l'autre des plateformes. Soit vous n’utilisez pas la commande correctement, soit vous avez entré une syntaxe incorrecte.
  • Le shell n'est pas compatible entre les systèmes Unix / DOS.
  • Il y a des problèmes d'exécution du script shell bash à partir d' une autre source .

Dans cet article, nous supposons que vous connaissez les bases du codage et avez une idée de ce que vous faites. Si vous êtes débutant, il est préférable de suivre des didacticiels détaillés sur la langue / commande que vous essayez d'exécuter. Vous avez probablement commis une erreur de syntaxe.

Solution 1: Vérification de la syntaxe et du format des commandes

La première et principale raison pour laquelle vous pourriez rencontrer ce message d'erreur est celle d'une syntaxe incorrecte dans votre code ou si vous ne suivez pas le format exact des commandes. Chaque commande a un format prédéfini que vous pouvez voir dans sa documentation. Plusieurs paramètres sont optionnels, les autres étant obligatoires.

De plus, vous devez prendre des précautions supplémentaires pour l'espace supplémentaire, l'utilisation de guillemets doubles et les paramètres obligatoires requis. Si l'un d'entre eux manque ou a été déclaré de manière incorrecte, vous ne pourrez pas exécuter votre code.

Par exemple, au lieu du code suivant

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

Vous devez l'exécuter en tant que

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

Assurez-vous également que vous exécutez correctement votre script de commandes / shell s’il couvre plusieurs lignes.

En raison du type de paramètre, les guillemets doubles sont nécessaires. Un espace supplémentaire peut également ruiner votre code et forcer le message d'erreur. Assurez-vous de vérifier la documentation officielle de la commande que vous exécutez et de voir s’il ya un problème.

Solution 2: dépannage de votre script shell

Si vous utilisez un script shell qui fonctionne dans le système source mais renvoie une erreur dans la cible, vous pouvez résoudre le script en vérifiant les variables stockées lors de l'exécution, puis voir la cause du problème. Ceci est une cause très courante car dans plusieurs cas, le shell tente d'interpréter un caractère non imprimable.

Essayez d’exécuter le shell avec le paramètre 'vx'. Cela nous indiquera quelles commandes sont exécutées et quelles valeurs sont stockées dans le script. Par ici, vous pouvez dépanner et diagnostiquer ce qui ne va pas.

Par exemple, exécutez le script dans le terminal après avoir inclus 'vx' en tant que:

 # sh -vx ./test_script5.sh 

Vous pouvez vérifier le contenu du script en utilisant la commande 'cat' comme suit:

 # chat test_script5.sh 

Solution 3: utilisation de la commande 'dos2unix.exe'

Dans les fichiers texte Windows / DOS, une nouvelle ligne est une combinaison d’un retour chariot (\ r) suivi d’un saut de ligne (\ n). Sous Mac (avant Mac OS X), un saut de ligne utilisait un simple retour chariot (\ r). Unix / Linux et Mac OS X utilisent des sauts de ligne avec saut de ligne (\ n). Si vous utilisez Cygwin, les scripts créés par DOS / Windows et les anciens Mac ne pourront pas être traités en raison du caractère de retour supplémentaire (\ r).

Utilisation de la commande 'dos2unix.exe'

Ici, vous pouvez créer la commande 'dos2unix.exe' qui convertira le script au format correct et vous pourrez ensuite l'exécuter sans aucun problème.

Pour conclure, vous devez rechercher vos commandes et le type de plate-forme que vous utilisez et vous assurer qu'il n'y a aucune anomalie. Puisque nous ne pouvons pas couvrir toutes les possibilités, vous auriez une idée du type d’erreurs pouvant se produire et de la façon de les réparer.

Des Articles Intéressants