Correction: Erreur de syntaxe près du jeton inattendu `(& lsquo;

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 créé dans les anciens systèmes DOS / Windows ou Mac.

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. Les principales raisons pour lesquelles ce message d'erreur se produit est soit une mauvaise syntaxe, soit un problème du système d'exploitation lors de l'interprétation des commandes d'un autre système / coquille.

Qu'est-ce qui cause une 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:

  • Mauvaise syntaxe lors de l'exécution de toute 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.
  • Le shell 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 d' 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 détaillés 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 pourriez 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.

En outre, une attention particulière doit être portée à l'espace supplémentaire , à l'utilisation de guillemets doubles et aux paramètres obligatoires requis. Si l'un d'entre eux est manquant 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 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 la documentation officielle de la commande que vous exécutez et de voir 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 en utilisant la commande 'cat' comme:

# 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 ne parviendra pas à traiter les scripts créés par DOS / Windows et les anciens Mac en raison du caractère supplémentaire de retour chariot (\ 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 pas de divergence. Étant donné que nous ne pouvons pas couvrir toutes les possibilités, vous auriez une idée des types d'erreurs pouvant survenir et comment les corriger.

Recommandé

Correction: Minecraft ne répond pas
Qu'est-ce que l'application d'enregistrement de périphérique de tuner TV numérique et doit-elle être supprimée?
Qu'est-ce que FileRepMalware et devez-vous le supprimer?