Je reçois une erreur de syntaxe bash près d'un jeton inattendu '('

4

Je travaille sur la sauvegarde des meilleurs scores pour mon tableau Game Elf JAMMA (412-en-1). Je suis actuellement ce tutoriel . J'essaie d'exécuter cette commande

mv hiscore(pre_mame0133u1).dat /mnt/three/usr/local/share/xmame/hiscore.dat

mais comme vous pouvez le voir sur ma capture d'écran , il renvoie une erreur

bash: erreur de syntaxe près d'un jeton inattendu '('

Kenyon Geetings
la source

Réponses:

9

bash: syntax error near unexpected token '('

Vous devez échapper aux crochets:

mv hiscore\(pre_mame0133u1\).dat /mnt/three/usr/local/share/xmame/hiscore.dat

Remarque:

Pour référence future, vous pouvez utiliser ShellCheck pour rechercher des bogues dans votre code bash. La saisie du script non corrigé donne les informations suivantes:

$ shellcheck myscript

Line 1:
mv hiscore(pre_mame0133u1).dat /mnt/three/usr/local/share/xmame/hiscore.dat
^-- SC2148: Tips depend on target shell and yours is unknown. Add a shebang.
          ^-- SC1036: '(' is invalid here. Did you forget to escape it?
          ^-- SC1088: Parsing stopped here. Invalid use of parentheses?

Corriger la première erreur:

$ shellcheck myscript

Line 1:
mv hiscore\(pre_mame0133u1).dat /mnt/three/usr/local/share/xmame/hiscore.dat
^-- SC2148: Tips depend on target shell and yours is unknown. Add a shebang.
                          ^-- SC1089: Parsing stopped here. Is this keyword correctly matched up?

Et en corrigeant la deuxième erreur:

$ shellcheck myscript

Line 1:
mv hiscore\(pre_mame0133u1\).dat /mnt/three/usr/local/share/xmame/hiscore.dat
^-- SC2148: Tips depend on target shell and yours is unknown. Add a shebang.

Lectures complémentaires

DavidPostill
la source
Ok, alors j’ai essayé, mais maintenant il est écrit 'mv: impossible de stat' hiscore (pre_mame0133u1) .dat ': Aucun fichier ou répertoire de ce type n’est probablement lié au fait de ne pas pouvoir trouver le fichier dans mon dossier de téléchargements. ? Mais je ne sais pas avec certitude.
Kenyon Geetings
@KenyonGeetings Courez ls -let voyez si c'est là ...
DavidPostill
Je viens de lancer ls -l et voici la sortie imgur.com/a/3zzWL . Donc non, ce n'est pas là. Mais comment puis-je m'y rendre? Merci pour toute votre aide jusqu'à présent!
Kenyon Geetings
@KenyonGeetings Avez-vous "décompressé l'archive et récupéré le fichier hiscore (pre_mame0133u1) .dat, il est utilisé mais le reste ne l'est pas"?
DavidPostill
1
@ KenyonGeetings, en haut à droite de votre capture d'écran, vous avez dézippé le fichier dat dans les téléchargements, et non à la base de votre répertoire personnel. Le terminal commence dans votre répertoire personnel. Vous pouvez donc y cd Downloadsmv Downloads\hiscore\(pre_mame0133u1\).dat /mnt/three/usr/local/share/xmame/hiscore.dat
accéder