Comment réparer l'erreur « bash : erreur de syntaxe près d'un jeton inattendu »
Bash (Bourne Again Shell) est un programme de ligne de commande qui accepte les commandes fournies et les exécute. Il prend des commandes Linux directement saisies de manière interactive à partir d'un clavier ou d'un fichier de script shell.
Bash est utilisé dans les systèmes Linux et Mac pour exécuter le système et c'est le shell par défaut dans la majorité des distributions Linux modernes telles que Ubuntu, Debian, Fedora, Rocky Linux et AlmaLinux pour n'en citer que quelques-uns.
L'une des erreurs les plus courantes que les utilisateurs rencontrent lors de l'exécution de scripts ou de commandes shell sur le shell bash est « bash : erreur de syntaxe près du jeton inattendu '(' ». Cela peut sembler quelque peu déroutant et vous vous demandez peut-être où vous vous êtes trompé en exécutant la commande.
-erreur de syntaxe bash à proximité du jeton inattendu '(' Erreur
L'erreur est principalement attribuée à une opération effectuée sur un fichier dont le nom de fichier est entouré de parenthèses ou de crochets.
Chaque fois que vous utilisez des parenthèses avec des noms de fichiers ou dans des scripts shell, vous DEVEZ TOUJOURS les ÉCHAPPER. Si vous ne le faites pas, vous risquez de rencontrer ce type d’erreur.
Dans bash, les parenthèses ou les crochets sont considérés comme des caractères spéciaux et doivent donc être échappés lors de l'exécution d'opérations sur les fichiers telles que la création, la copie, la suppression et le téléchargement d'un fichier.
Prenons un exemple simple et simulons l'erreur. Lorsque vous créez un fichier, par exemple sample_file(data).txt
à l'aide de la commande touch, vous rencontrerez le message d'erreur suivant, comme indiqué.
$ touch sample_file(data).txt
bash: syntax error near unexpected token `('
Passons maintenant à la vitesse supérieure et voyons comment vous pouvez résoudre l’erreur ci-dessus.
Correctif 1 : utilisez une barre oblique inverse pour échapper aux parenthèses
Si vous insistez pour avoir un nom de fichier avec des parenthèses, la solution est de préfixer chacune des parenthèses avec une barre oblique inverse. Ceci est communément appelé échapper aux parenthèses et prend le format suivant : \( and\)
. La barre oblique inverse apparaît juste avant chaque parenthèse.
Dans notre exemple précédent, nous créerions notre fichier comme suit sans aucun problème.
$ touch sample_file\(data\).txt
À partir du résultat suivant, vous pouvez voir que nous avons réussi à créer le fichier sans aucun problème en évitant les parenthèses.
Le même principe s'applique lors de la copie, de la suppression et du renommage du fichier, comme indiqué ci-dessous.
$ cp sample_file\(data\).txt /tmp/
rm sample_file\(data\).txt
Correctif 2 : placer le fichier entre des guillemets doubles
L’autre alternative consiste à placer le nom complet du fichier entre guillemets doubles. Cette astuce fonctionnera également sans problème.
$ cp "sample_file(data).txt" /tmp
rm "sample_file(data).txt"
L'utilisation des méthodes ci-dessus vous aidera à sortir de cette erreur et à effectuer des opérations de manière transparente sur vos fichiers.
Conclusion
Et voilà ! Dans ce bref guide, nous vous avons montré comment corriger l'erreur « bash : erreur de syntaxe proche du jeton inattendu '(' » sous Linux. Comme vous l'avez vu, le correctif est assez simple et direct. Vos commentaires sont les bienvenus.