Pages : 1
#1 Le 26/10/2009, à 16:24
- flagadabla
[Résolu] bash: espaces dans les chemins d'accès
Bonjour,
Il me semble que lorsqu'un nom de chemin contient un espace et que je le met dans une variable, il devient impossible de s'en servir par la suite. Exemple:
#choisir une seule ligne parmi les 4 suivantes, toutes donnent le même résultat.
SOURCEDIRS='/media/Work Backup/Notes'
SOURCEDIRS="/media/Work Backup/Notes"
SOURCEDIRS=/media/Work\ Backup/Notes
SOURCEDIRS='"/media/Work Backup/Notes"'
... ajoutez toutes vos combinaisons d'echappement possibles.
cd $SOURCEDIRS
donne une erreur
cd: /media/Work\: Aucun fichier ou dossier de ce type
alors que
cd /media/Work\ Backup/Notes
fonctionne très bien?
N'y a-t-il aucun moyen d'échapper des espaces dans des variables?
Merci pour votre aide
Dernière modification par flagadabla (Le 26/10/2009, à 16:55)
Hors ligne
#2 Le 26/10/2009, à 16:37
- flagadabla
Re : [Résolu] bash: espaces dans les chemins d'accès
J'ai trouvé la solution qui consiste à mettre des guillemets autour de $SOURCEDIRS
Mais mon problème est que je voudrais mettre plusieurs répertoires à la suite dans ma variable. Comme:
SOURCEDIRS=/media/Work\ Backup/Notes /media/Work\ Backup/Work
mais impossible après de faire
ls "$SOURCEDIRS"
Puisque bash considère alors que c'est un seul et unique long répertoire au lieu de 2 à la suite...
Comment s'en sortir?
Merci.
Dernière modification par flagadabla (Le 26/10/2009, à 16:37)
Hors ligne
#3 Le 26/10/2009, à 16:38
- jotape99
Re : [Résolu] bash: espaces dans les chemins d'accès
SOURCEDIRS="/media/Work Backup/Notes"
cd "$SOURCEDIRS"
Fonctionne chez moi
[EDIT] J'ai posté en même temps que toi.
Dernière modification par jotape99 (Le 26/10/2009, à 16:41)
Hors ligne
#4 Le 26/10/2009, à 16:55
- flagadabla
Re : [Résolu] bash: espaces dans les chemins d'accès
Ok j'ai trouvé la réponse:
il faut faire
SOURCEDIRS=(/media/Work\ Backup/Notes /media/Work\ Backup/Work)
ls "${SOURCEDIRS[@]}"
coder en bash, c'est quand même un peu un mélange de man et de devinette
Hors ligne
Pages : 1