Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#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. smile

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