web-dev-qa-db-de.com

So fügen Sie Pfad mit Leerzeichen in die Bash-Variable ein

Wie kann ich Pfad mit Leerzeichen in der bash-Variablen in .bashrc hinzufügen? Ich möchte einige Variablen in .bashrc für Pfade Speichern Charakter\es hat nicht geholfen 

games=/run/media/mohamedRadwan/games\ moves    # this doesn't work
games='/run/media/mohamedRadwan/games  moves'  # or this
games="/run/media/mohamedRadwan/games  moves"  # or this

... wenn ich renne:

mount $games

... es gibt eine Fehlermeldung aus, die angibt, dass nur versucht wird, /run/media/mohamedRadwan/games zu mounten

... aber wenn ich echo $games starte, zeigt es den vollen Wert, /run/media/mohamedRadwan/games moves

wie kann ich das lösen?

mount /dev/sda9 "$games"

Zitieren Sie wie erwähnt immer variable Dereferences. Andernfalls verwirrt die Shell die Leerzeichen im Wert der Variablen als Leerzeichen, die mehrere Werte trennen.

8
bishop

Wenn eine Variable Leerzeichen enthält, werden die Erweiterung der Variablen und dann die Wortaufteilung zu vielen Argumenten führen. Der Befehl Echo zeigt alle Argumente an, aber andere Programme oder Funktionen können Argumente anders behandeln.

Das Umgeben von Variablen in doppelte Anführungszeichen verhindert, dass Argumente aufgeteilt werden

printf "'%s'\n" $games

printf "'%s'\n" "$games"
1