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



Essayez Notre Instrument Pour Éliminer Les Problèmes

Le message d'erreur erreur de syntaxe à proximité 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é édité ou créé dans les anciens systèmes DOS / Windows ou Mac.



Erreur de syntaxe près du jeton inattendu `(

Erreur de syntaxe à proximité 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. coquille.



Qu'est-ce qui cause une erreur de syntaxe à proximité d'un 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 problèmes de syntaxe lors de l'exécution de commandes. Les principales raisons de cette erreur sont:

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

Dans cet article, nous supposons que vous connaissez les bases du codage et que vous avez une idée de ce que vous faites. Si vous êtes un débutant, il est préférable que vous suiviez des didacticiels approfondis du langage / de la 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 raison pour laquelle vous pouvez rencontrer ce message d'erreur est une mauvaise syntaxe dans votre code ou 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 facultatifs tandis que d'autres sont obligatoires.



De plus, des précautions supplémentaires doivent être prises pour espace supplémentaire , utilisation de double citation , et le obligatoire paramètres requis. Si l'un d'entre eux est manquant ou a été déclaré incorrectement, 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 comme

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

Assurez-vous également que vous exécutez correctement vos commandes / script shell s'il s'étend sur 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 le documentation officielle de la commande que vous exécutez et voyez s'il y a un problème là-bas.

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 dépanner le script en vérifiant les variables qui sont stockées pendant l'exécution, puis voir ce qui cause le problème. C'est une cause très courante car dans plusieurs cas, le shell essaie d'interpréter un caractère non imprimable.

Essayez d’exécuter le shell avec le paramètre «vx». Cela nous montrera 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» comme:

# sh -vx ./test_script5.sh

Vous pouvez vérifier le contenu du script à l’aide de 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 ( n). Si vous utilisez Cygwin, il échouera à traiter les scripts créés par DOS / Windows et les anciens Mac en raison du caractère supplémentaire de retour chariot ( r).

En utilisant

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 pas de divergences. Puisque nous ne pouvons pas couvrir toutes les possibilités, vous auriez une idée des types d'erreurs qui peuvent survenir et comment les corriger.

3 minutes de lecture