
Angenommen, ich habe den folgenden Pfad:
/home/$USER/Downloads/My Folder
Ich habe versucht, den oben angegebenen Dateipfad FILE_NAME
wie folgt einer Variablen zuzuweisen:
FILE_NAME=/home/$USER/Downloads/My Folder
$FILE_NAME
Die Ausgabe war:
bash: /home/$USER/Downloads/My :No such file or directory
Wie kann dieses Problem behoben werden?
Antwort1
Sie müssen Anführungszeichen verwenden, wenn der Pfad Leerzeichen enthält:
FILE_NAME="/home/$USER/Downloads/My Folder"
Antwort2
Das Problem ist das eingebettete Leerzeichen im Namen. Die einfachste Möglichkeit, dieses Problem zu lösen, besteht darin, die vollständige Pfadzeichenfolge in Anführungszeichen zu setzen (d. h. FILE_NAME="/home/${USER}/Downloads/My Folder"
Der Grund für die Verwendung "
in Ihrem Fall ist, dass Sie $USER verwenden, was eine Ersetzung erfordert, bei der '
dies nicht passieren würde.
Eine zweite Frage ist, wie Sie die Variable verwenden werden. In Ihrem Beispiel ... würde ich annehmen, dass Sie die CD aus dem Befehl entfernt haben. Um die Variable zu verwenden, sollten Sie wahrscheinlich auch " um ihre Verwendung herum verwenden.
also ... meine Vermutung zu Ihrer Verwendung ... cd "$FILE_NAME"