Comment utiliser "cd" pour accéder à un répertoire avec un espace, par exemple "XML 5.1 Final Fields" dans un script bash
J'ai essayé cd XML 5.1 Final Fields
Mais ça donne le No such file or directory
Erreur.
Voici le script:
#! /bin/bash
xmlfolder="XML/ \/5.1/ \/Final/ \/Fields"
xmlpath="/home/george/Desktop/m5u/test/$xmlfolder"
cd $xmlpath
ls /home/george/Desktop/m5u/test/
XML 5.1 Final Fields
~/Desktop/m5u/test$ ll
drwxr-xr-x 9 george george 4096 Feb 18 12:44 XML 5.1 Final Fields
c'est l'erreur que j'obtiens lorsque j'exécute le script
line 5: cd: /home/george/Desktop/m5u/test/XML\: No such file or directory
Votre variable xmlfolder
est incorrecte. Ça devrait être
xmlfolder=XML\ 5.1\ Final\ Fields
ou = "Champs finaux XML 5.1"
Vous n'avez pas besoin du /
dans le chemin - car ce n'est qu'un dossier. Vous n'avez pas non plus besoin du ""
si vous utilisez également \
. Choisissez-en un.
depuis votre modification avec la commande ls
, je peux voir qu'il peut y avoir un espace à la fin du nom de votre dossier. Je vous suggère de supprimer l'espace, soit en renommant en nautilus, soit avec la commande mv
.
Si vous souhaitez conserver l'espace, le nom de votre variable doit être le suivant:
xmlfolder=XML\ 5.1\ Final\ Fields\
ou
xmlfolder="XML 5.1 Final Fields "
Notez que si vous utilisez l'option First avec le \
caractère, vous devez également vous référer à la variable avec ""
, c'est à dire. "$xmlfolder"
.
L'erreur suggère que cd
n'est pas satisfait du chemin.
Essayez de changer la commande cd
à partir de ce
cd $xmlpath
à
cd "$xmlpath"
Pour être parfaitement honnête, vous ne devriez pas avoir besoin de cd
dans un script bash. Il suffit de se référer à tout avec un chemin absolu.
En résumé, votre xmlfolder=
la ligne doit être xmlfolder=XML\ 5.1\ Final\ Fields
, et votre ligne cd
doit être cd "xmlpath"
.