Correction d'une erreur de syntaxe Bash près d'un jeton inattendu
Publié: 2022-05-30Le codage dans le terminal Linux Bash est devenu une pratique prédominante dans le secteur du codage. Les ingénieurs logiciels et les étudiants qui apprennent le langage de codage rencontrent diverses erreurs. Si vous avez vu à plusieurs reprises des erreurs telles que Erreur de syntaxe près d'un jeton inattendu '(' ou Erreur de syntaxe Bash près d'un jeton inattendu, vous pouvez essayer de vous fier aux méthodes décrites dans l'article et devenir un codeur compétent. Lisez les méthodes décrites dans l'article du commande décrite et corrigez les erreurs dans les lignes de commande de votre fichier.
Contenu
- Comment réparer une erreur de syntaxe Bash près d'un jeton inattendu
- Méthode 1 : Correction manuelle des erreurs dans chaque ligne de commande
- Étape I : lire le contenu du fichier
- Étape II : supprimer les sauts de ligne Windows
- Étape 3 : Définir les autorisations pour le fichier nouvellement créé
- Étape IV : formater le code dans le fichier
- Méthode 2 : réécrire le code
- Méthode 3 : Utiliser la commande Dos2unix.exe
Comment réparer une erreur de syntaxe Bash près d'un jeton inattendu
Linux Bash est un interpréteur de ligne de commande pour le système basé sur Linux et remplace le Bourne Shell ou sh. Les fichiers sont nommés en utilisant le format .sh dans le script Linux Bash. S'il y a des problèmes de formatage dans le code du script shell, vous pouvez rencontrer une erreur de syntaxe. Si l'erreur est proche du caractère ( , le shell vous indiquera l'erreur dans la ligne et affichera l'erreur dans la ligne correspondante. Comme Linux Bash est un interpréteur, la ligne avec l'erreur vous sera renvoyée dans le terminal et il arrêtera d'analyser le reste des commandes dans le script.Par conséquent, vous devez corriger l'erreur dans la ligne de commande particulière et passer à la suivante pour corriger l'erreur de jeton inattendue dans le script shell.Les causes de la syntaxe les erreurs proches du jeton inattendu dans Linux Bash sont répertoriées ci-dessous dans cette section comme ci-dessous :
- Codage avec des séquences d'échappement - Si vous avez écrit les codes dans les scripts Bash, les séquences d'échappement ou les guillemets dans le script peuvent provoquer des erreurs. Les séquences d'échappement et les guillemets doivent être écrits dans le bon format pour corriger l'erreur.
- Syntaxe incorrecte dans le fichier de codage - La syntaxe dans le code peut donner l'erreur de syntaxe si la commande est écrite dans la mauvaise syntaxe, comme changer l'ordre des boucles.
- Mauvaise utilisation de la commande - Si vous n'utilisez pas la commande correctement, comme une affectation de valeur incorrecte, vous pouvez avoir une erreur de syntaxe.
- Système d'exploitation incompatible dans les systèmes - Si le shell du script de codage n'est pas compatible entre les systèmes Unix et DOS, vous pouvez avoir une erreur inattendue.
- Problèmes dans le script shell bash - Les problèmes qui s'exécutent dans le script shell bash sur le fichier copié à partir d'un autre système peuvent entraîner une erreur de jeton inattendue.
Considérez un fichier nommé example.sh créé dans le script Linux Bash avec les lignes de commande suivantes à des fins explicatives. Le fichier d'exemple offre des possibilités d'erreurs de syntaxe et inclut toutes les commandes possibles pouvant être utilisées dans le script shell.
str= 'Première ligne de commande de '(fichier d'exemple)' dans le script' chaîne= [(1,2),(3,4)] si[ $jour == "lundi" ] alors écho "lundi" autre echo "pas de lundi" Fi pour VARIABLE dans {0..2} ; alors faites echo command1 ; écho commande2 ; écho commande3 ; écho commande4 ; Fini tandis que vrai; faire si [ $ jour == "lundi" ] ; puis echo "lundi" ; sinon echo "pas mon" ; Fini; Fi
Méthode 1 : Correction manuelle des erreurs dans chaque ligne de commande
La première méthode pour corriger les erreurs consiste à corriger manuellement l'erreur de syntaxe dans chaque ligne de commande du script. Les étapes pour résoudre les erreurs de syntaxe près du jeton inattendu dans les lignes de commande sont décrites dans cette section. Le processus pour corriger l'erreur de jeton inattendue dans le terminal est décrit ci-dessous. Exécutez le fichier dans le terminal en tapant la commande ./example.sh et en appuyant sur la touche Entrée .
2. Notez les lignes contenant l'erreur de jeton inattendue dans les lignes de commande du résultat ci-dessous.
3. Corrigez l'erreur dans chaque ligne en suivant les méthodes décrites ci-dessous individuellement et en enregistrant le fichier.
4. Exécutez à nouveau le fichier après les modifications et vérifiez si l'erreur de syntaxe est résolue sur le fichier.
Lisez également: Comment installer Linux Bash Shell sur Windows 10
Étape I : lire le contenu du fichier
La première étape pour résoudre l'erreur de syntaxe dans les lignes de commande consiste à lire le fichier dans le terminal. S'il y a des problèmes avec le fichier, vous ne pourrez peut-être pas afficher le fichier. La pratique courante d'affichage du fichier consiste à exécuter le fichier à l'aide de la commande ./example.sh mais vous ne pouvez pas modifier le contenu du fichier. Les options permettant d'afficher le contenu du fichier et de modifier les lignes de commande pour corriger l'erreur de syntaxe près du jeton inattendu '(' sont décrites ci-dessous.
Option 1 : via la commande CAT
La première option consiste à utiliser la commande cat pour afficher le fichier dans le script shell. Lisez le contenu du fichier avec l'erreur de jeton inattendue à l'aide de la commande cat en tapant la commande cat –v example.sh dans le terminal.
Remarque 1 : L' exemple.sh est utilisé à des fins explicatives et vous devez taper le nom du fichier qui contient l'erreur de jeton inattendue.
Note 2 : La commande cat –v permet d'afficher tous les caractères invisibles susceptibles de représenter le retour chariot ou l'espace insécable.
Option 2 : via la commande VX
Si vous ne pouvez pas utiliser la commande cat, vous pouvez essayer d'utiliser la commande vx pour afficher et modifier les commandes sur le fichier en suivant l'étape ci-dessous. Tapez la commande sh –vx ./example.sh dans le terminal pour ouvrir le fichier.
Option 3 : via la commande od -a
3. S'il y a quelques caractères invisibles dans les lignes de commande, vous pouvez utiliser la commande od –a pour afficher le fichier. Si le contenu du fichier n'est pas visible dans le fichier de code, vous pouvez essayer de lire le fichier en utilisant la commande od –a example.sh pour modifier le code.
Étape II : supprimer les sauts de ligne Windows
S'il y a des sauts de ligne Windows dans le script shell, vous pouvez utiliser les commandes de la console pour supprimer les sauts de ligne et copier les lignes de code dans un nouveau fichier pour corriger l'erreur.
Entrez la commande suivante dans le terminal pour enregistrer le contenu du fichier dans un autre fichier nommé correctedexample.sh afin de supprimer les sauts de ligne Windows dans le script.
tr –d '\r' <exemple.sh> exemple corrigé.sh
Étape 3 : Définir les autorisations pour le fichier nouvellement créé
Vous devez définir l'autorisation sur le fichier nouvellement créé pour modifier le fichier afin que le fichier puisse être exécuté dans le shell. Tapez la commande chmod 755 correctedexample.sh dans le terminal pour fournir les autorisations au fichier et exécuter le fichier. Vous pouvez maintenant afficher le fichier corrigé et résoudre les problèmes de formatage et corriger l'erreur de syntaxe près du jeton inattendu '(' dans le fichier.
Étape IV : formater le code dans le fichier
La deuxième étape consiste à formater les lignes de code individuellement et à modifier manuellement les lignes de commande sur le fichier. Les options de formatage du fichier pour corriger l'erreur de syntaxe près du jeton inattendu '(' sont décrites ci-dessous dans cette section.
Option 1 : Remplacer les guillemets simples par des guillemets doubles
Si vous utilisez des guillemets simples dans les lignes de commande, vous devez modifier la commande en remplaçant le guillemet simple par des guillemets doubles pour corriger l'erreur de syntaxe. Dans le fichier example.sh , supprimez les lignes de code qui ont ' et ' ou les guillemets simples dans la commande, et remplacez les guillemets simples par les guillemets doubles ou les " et '' . Ici, dans le fichier d'exemple, vous devez modifier le code en tant que str = "Première ligne de commande de" \ (fichier d'exemple) \" dans le script"
Remarque : Les guillemets doubles sont nécessaires pour les commandes de type paramètre telles que str= "[(1,2),(3,4)]" .
Lisez aussi: 20 meilleures distributions Linux légères de 2022
Option 2 : Ajouter $ aux lignes de chaîne
Si vous avez ajouté des valeurs de chaîne au script, vous devez ajouter un $ aux valeurs de chaîne pour corriger l'erreur de syntaxe dans le script. Ajoutez le $ pour les lignes de commande avec les valeurs de chaîne pour corriger l'erreur inattendue. Ici, dans le fichier d'exemple, modifiez la ligne de commande en tant que ;
str= $ 'Première ligne de commande de '\(fichier d'exemple)\' dans le script'
Remarque : Si vous utilisez le signe $ dans la valeur de la chaîne, vous pouvez ignorer la séquence d'échappement de la barre oblique inverse car les lignes de commande sont décodées par la norme ANSI C. En d'autres termes, en utilisant un $ pour la valeur de chaîne, vous pouvez éviter d'utiliser les guillemets doubles au lieu des guillemets simples dans les lignes de commande.
Option 3 : convertir les onglets en espaces
Les espaces que vous avez laissés entre deux instructions dans la commande doivent être des espaces au lieu de tabulations pour corriger l'erreur de syntaxe dans le script. Si vous obtenez l'erreur sur Cygwin, vous pouvez essayer de convertir les onglets dans les codes en espaces pour corriger l'erreur. La ligne de commande est donnée ci-dessous comme;
faites echo command1 ; écho commande2 ; écho commande3 ; écho commande4 ; Fini
La commande ci-dessus doit être réécrite comme indiqué ci-dessous pour corriger l'erreur.
faites echo command1 ; écho commande2 ; écho commande3 ; écho commande4 ; Fini
Option 4 : Utiliser des caractères d'échappement
Si vous utilisez un caractère bash, il est important d'utiliser un caractère d'échappement avec le caractère bash pour corriger l'erreur de syntaxe. Les parenthèses ou () sont des caractères spéciaux bash dans le fichier, par conséquent, vous devrez utiliser le caractère d'échappement ou la barre oblique inverse dans la ligne de commande pour échapper aux caractères normaux pour exécuter la commande. La commande str= 'Première ligne de commande de \'(fichier d'exemple)\' dans le script' ne donnerait pas d'erreur dans le terminal car les caractères d'échappement sont utilisés.
Lisez aussi: Comment se retrouver parmi nous sous Linux
Option 5 : Utiliser des espaces entre les caractères
Le script shell reconnaît les commandes et les instructions du script par les valeurs par défaut. Vous devez vous assurer que l'espace entre les caractères est correctement utilisé afin que le shell puisse identifier la commande donnée dans le script. L'espace est un caractère utilisé pour différencier deux caractères dans la ligne de commande. Dans le code, il n'y a pas d'espace entre if et [ , ce qui donne l'erreur de jeton inattendue car la commande if[ n'est pas identifiée par le shell. Si le code est changé en if [ $ day == "mon" ] ; alors l'erreur peut être résolue en utilisant la commande shell bulletin si elle est identifiée par le shell.
Option 6 : Utiliser le séparateur de commandes pour les instructions
Les différentes commandes du script shell doivent être séparées en instructions pour que le terminal puisse identifier les commandes individuelles. Vous devez utiliser un séparateur de commande pour corriger l'erreur de syntaxe dans Linux Bash. Les instructions de la commande doivent être séparées par un séparateur de commande tel qu'un point-virgule ou un ; ou une nouvelle ligne en appuyant sur la touche Entrée . Par exemple, la commande dans le code if [ $ day == "mon" ] doit alors être modifiée comme si [ $ day == "mon" ] ; puis pour corriger l'erreur. Étant donné que le point-virgule est utilisé comme séparateur de commande entre les caractères [ puis , vous pouvez corriger cette erreur.
Option 7 : supprimer des déclarations supplémentaires
Parfois, vous avez peut-être ajouté des instructions supplémentaires ou mélangé les codes en cas de plusieurs boucles imbriquées. Vous devez supprimer les instructions supplémentaires sur les lignes de commande pour corriger l'erreur de syntaxe près du jeton inattendu '(' dans le bash Linux. Le bash boucle pour… fait ou et les constructions de construction si… fi doivent être dans la syntaxe correcte. Le fichier d'exemple a la mauvaise syntaxe dans la boucle for a le terme then qui est utilisé dans l'instruction if . La modification du code comme le code suivant corrigera l'erreur de jeton inattendue. L'instruction then est une instruction supplémentaire dans le code et supprime le terme corrigera l'erreur.
pour VARIABLE dans {0..2} ; faites echo command1 ; écho commande2 ; écho commande3 ; écho commande4 ; Fini
Option 8 : Assurez-vous que l'ordre de clôture des relevés est correct
Si vous utilisez de nombreuses instructions de construction imbriquées ou conditionnelles dans le script shell, vous devez vous assurer que les boucles sont fermées dans l'ordre dans lequel elles sont ouvertes. Vous pouvez utiliser un nouveau séparateur de ligne pour éviter les conflits avec les boucles. L'ordre de fermeture des boucles imbriquées et des instructions conditionnelles doit être correct et ne doit pas être modifié. Les boucles dans le code while true ; faire si [ $ jour == "lundi" ] ; puis echo "lundi" ; sinon echo "pas mon" ; Fini; fi doit être fermé dans le bon ordre. La modification du code comme indiqué ci-dessous peut corriger l'erreur de jeton inattendue car l'ordre de fermeture des instructions est corrigé.
tandis que vrai; faire si [ $ jour == "lundi" ] ; puis echo "lundi" ; sinon echo "pas mon" ; Fi; Fini
Lisez aussi : Qu'est-ce qu'un interpréteur de ligne de commande ?
Méthode 2 : réécrire le code
Si vous avez copié le code et l'avez collé dans un nouveau fichier sur le terminal, vous pouvez essayer de réécrire le code manuellement pour corriger l'erreur. Les erreurs dans le code peuvent être corrigées si vous avez écrit le code sans aucune erreur de format dans le script shell. En effet, les caractères masqués et les problèmes de formatage dans l'éditeur de texte tel que Microsoft Word, que vous avez peut-être utilisés pour copier et coller le code, peuvent avoir donné l'erreur.
Méthode 3 : Utiliser la commande Dos2unix.exe
Si vous utilisez un système d'exploitation Unix, vous pouvez écrire des codes avec le caractère de saut de ligne comme \n pour passer à la ligne suivante dans le fichier. Cependant, si vous utilisez un système d'exploitation Windows, vous devez passer à la ligne suivante dans le code en utilisant le retour chariot et le saut de ligne ou le \r\n dans le fichier. Si vous exécutez le code écrit dans le système d'exploitation Windows dans Cygwin, vous pouvez obtenir l'erreur de syntaxe près du jeton inattendu '('.
Pour corriger l'erreur, vous devez effacer les caractères de retour chariot à l'aide de l'outil de ligne de commande DOS vers Unix en tant que convertisseur de format de fichier texte. Tapez la commande suivante en tant que dos2unix.exe example.sh dans le terminal et vous pourrez convertir le fichier au format Unix.
Recommandé:
- Comment créer un compte Telegram sur Android
- Correction de l'erreur d'exécution C++ sur Windows 10
- Comment supprimer définitivement un compte Github
- Top 14 des meilleures cartes graphiques pour Linux
L'article a décrit les méthodes de base pour corriger l' erreur de syntaxe Bash près du jeton inattendu '(' dans le script. Si vous utilisez un Bash Linux, vous pouvez utiliser les méthodes expliquées dans cette section pour corriger l'erreur de syntaxe Bash près du jeton inattendu. Si vous avez lu l'intégralité de l'article et trouvé le contenu utile, veuillez nous faire part de vos suggestions et questions dans la section des commentaires.