Leerzeichen in einem Ordnernamen

Ich habe einen Ordnernamen mit einem Leerzeichen zwischen dem Namen:/Volumes/Img/Horos Data/DATABASE/

Ich muss es in eine Variable einfügen, um es in einem Skript zu verwenden.

Im Terminal kann ich \den Ordner verwenden: cd /Volumes/Dados/Horos\ Data/DATABASE/, aber es funktioniert nicht, wenn ich eine Variable wie:

DESTINY=/Volumes/Dados/Horos\ Data/DATABASE.noindex/
ls $DESTINY

Wie kann ich es in eine Variable schreiben?

Antworten (2)

Variablen oder Argumente auf der rechten Seite eines Befehls unterliegen der Worttrennung durch die Shell, sofern sie nicht in Anführungszeichen stehen. Sie können die folgende Demonstration ausprobieren.

touch foo\ bar\ baz
#
ls foo\ bar\ baz
foo bar baz
# or
ls "foo bar baz"
foo bar baz
#
var=foo\ bar\ baz
ls $var
ls: bar: No such file or directory
ls: baz: No such file or directory
ls: foo: No such file or directory
#
ls "$var"
foo bar baz

Anführungszeichen können verwendet werden, um Leerzeichen bei der Zuweisung an eine Variable zu maskieren.

var="abc def ghi"
Es funktioniert nicht mit Quoten! Ich habe es mit doppelten und einfachen Anführungszeichen versucht und einen Fehler zurückgegeben. DESTINY=/Volumes/Dados/Horos Data/DATABASE/ error= link_stat "/Volumes/Dados/Horos" fehlgeschlagen: Keine solche Datei oder Verzeichnis (2)
... außer wenn Sie die Variable über so etwas verwendenblah $var , beißt Sie das POSIX-Wort split