Hier ist ein Bash-Skript Ich arbeite an:Seltsame Fehler zu überprüfen, ob Verzeichnis mit Bash-Skript existiert
dir="~/path/to/$1/folder"
if [ -d "$dir" ]; then
# do some stuff
else
echo "Directory $dir doesn't exist";
exit 1
fi
und wenn ich es vom Terminal laufen:
> ./myscript.sh 123 Directory ~/path/to/123/folder doesn't exist
Aber das Ordner eindeutig tut existieren. Dies funktioniert normal:
> ls ~/path/to/123/folder
Was mache ich falsch?
Nur weil Joakim überhaupt keine Erklärung lieferte: Sie hatten das ~ zitiert. ~ expandiert nur in bash während der Tilde-Erweiterung, aber alles, was du zitierst, deaktivierst du die spezielle Bedeutung von, also bedeutet die Tilde (~) nicht länger "expandiert zum Home-Verzeichnis des aktuellen Benutzers". Es bedeutete nur: "das Verzeichnis im aktuellen Verzeichnis namens ~". Was nicht existiert, daher der Fehler. – lhunath