Correction d'une erreur de syntaxe Bash près d'un jeton inattendu
Divers / / May 30, 2022
Le 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 l'erreur de syntaxe près du jeton inattendu '(' ou l'erreur de syntaxe Bash près de jeton inattendu, vous pouvez essayer de vous fier aux méthodes décrites dans l'article et devenir un expert codeur. Lisez les méthodes décrites dans l'article dans l'ordre décrit 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 Linux Frapper scénarisation. 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 de la ( caractère, le shell vous indiquera l'erreur dans la ligne et affichera l'erreur dans la ligne correspondante. Étant donné que 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 du 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 l'erreur de syntaxe près du jeton inattendu dans Linux Bash sont répertoriées ci-dessous dans cette section comme suit :
- 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, une erreur inattendue peut se produire.
- Problèmes dans le script shell bash- Les problèmes d'exécution dans le script shell bash sur le fichier copié à partir d'un autre système peuvent générer une erreur de jeton inattendue.
Prenons un fichier nommé exemple.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"Fipour VARIABLE dans {0..2}; alorsfaites echo command1; écho commande2; écho commande3; écho commande4; Finitandis 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 le ./exemple.sh commande et en appuyant sur la Entrerclé.
2. Noter la lignes qui ont l'erreur de jeton inattendue dans les lignes de commande sur le résultat ci-dessous.
3. Corrigez l'erreur dans chaque ligne en suivant les méthodes décrites ci-dessous individuellement et économie le fichier.
4. Courir le fichier à nouveau après les modifications et vérifiez si l'erreur de syntaxe est résolue sur le fichier.
A lire aussi :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 ./exemple.sh mais vous ne pouvez pas modifier le contenu du fichier. Les options pour afficher le contenu du fichier et 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 le chat commande 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 chat –v exemple.sh dans la Terminale.
Note 1: La 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 le sh –vx ./exemple.sh commande 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 à l'aide de la commande od –un exemple.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é exemplecorrigé.sh pour supprimer les sauts de ligne Windows dans le script.
tr-d '\r'exemplecorrigé.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 comme chmod 755 exemple corrigé.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 exemple.sh fichier, supprimez les lignes de code qui ont ‘ et ’ ou la Guillemets simples dans la commande, et remplacez les guillemets simples par le double citation ou la “ et ’’. Ici, dans le fichier d'exemple, vous devez modifier le code comme str= "Première ligne de commande de "\(fichier d'exemple)\" dans le script"
Noter: Les guillemets doubles sont nécessaires pour les commandes de type paramètre telles que str= "[(1,2),(3,4)]".
A lire 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. Ajouter le $ pour les lignes de commande avec le chaîne de caractères valeurs 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 ‘\(exemple de fichier)\’ dans le script’
Noter: Si vous utilisez le $ dans la valeur de chaîne, vous pouvez ignorer la séquence d'échappement antislash 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. La 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 le barre oblique inverse dans la ligne de commande pour échapper les caractères normaux pour exécuter la commande. La str= 'Première ligne de commande de \'(fichier d'exemple)\' dans le script' La commande ne donnerait pas d'erreur dans le terminal car les caractères d'échappement sont utilisés.
A lire aussi: Comment être 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 les si et [, qui donne l'erreur de jeton inattendue en tant que si[ la commande n'est pas identifiée par le shell. Si le code est remplacé par si [ $ jour == "lundi" ] ; alors l'erreur peut être résolue avec la commande shell bulletin si est identifié par la coquille.
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 Entrer clé. Par exemple, la commande dans le code si [ $ jour == "lundi" ] alors doit être modifié comme si [ $ jour == "lundi" ]; alors pour corriger l'erreur. Étant donné que le point-virgule est utilisé comme séparateur de commande entre les caractères [ et alors, 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 Linux Bash. Les boucles bash pour…fait ou et les constructions constructives si… fi doit être dans la bonne syntaxe. Le fichier d'exemple a la mauvaise syntaxe dans le pour boucle a le terme alors qui est utilisé dans le si déclaration. La modification du code comme le code suivant corrigera l'erreur de jeton inattendue. La déclaration alors est une instruction supplémentaire dans le code et la suppression du 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 tandis que vrai; 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
A lire 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 généré 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 du 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 la DOS vers Unix outil de ligne de commande en tant que convertisseur de format de fichier texte. Tapez la commande suivante comme exemple dos2unix.exe.sh dans le Terminal et vous pouvez 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 discuté des méthodes de base pour réparer Erreur de syntaxe bash près d'un jeton inattendu‘(’ dans le scénario. 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 d'un 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.