weil
ls $my_path;
wird
ls /cygdrive/c/Program Files (x86)
Da die Backslashes nicht wirklich Teil des Pfads sind, sind sie nur ein Trick in bash "Literals".
So ls
wird drei verschiedene Dateien Namen gegeben /cygdrive/c/Program
, Files
und (x86)
. Um ls
einen einzigen Dateinamen mit Leerzeichen anzuzeigen, verwenden Sie:
ls "$my_path"
In der Praxis setzen Sie in Bash alle Strings in doppelte Anführungszeichen, die Leerzeichen enthalten können und die Sie als Einheit betrachten möchten. $ -subtitution findet immer noch in doppelten Anführungszeichen statt (aber nicht in einfachen Anführungszeichen)