2013-04-18 12 views
6

Irgendwelche Ideen, was ist falsch mit diesem Code?Shell Variable Problem beim Versuch, mkdir

Ich bekomme den Fehler: mkdir: ~/Desktop: Keine solche Datei oder Verzeichnis.

Offensichtlich ist das Verzeichnis gibt und das Skript funktioniert, wenn ich die Variable mit ~/Desktop/TempDir/

+1

Noch ein Tipp, Sie können den Code zu '[-d $ CLIENT_BUILD_DIR] || vereinfachen mkdir $ CLIENT_BUILD_DIR' und vorzugsweise '|| hinzufügen echo "Fehler beim Erstellen des Verzeichnisses: $ CLIENT_BUILD_DIR" ':) – Jite

Antwort

14

Die Zitate verhindern die Erweiterung von ~.

Verwendung:

CLIENT_BUILD_DIR=~/Desktop/TempDir/ 

if [ ! -d "$CLIENT_BUILD_DIR" ] 
then mkdir "$CLIENT_BUILD_DIR" 
fi 
+1

Das hat es geschafft! Vielen Dank –

+1

Sie könnten 'eval' es auch :) – Jite

5

Der ~ Charakter ist nicht neu interpretieren, wenn sie in einer Variablen verwendet wird, ersetzen.

Sie können stattdessen CLIENT_BUILD_DIR="$HOME/Desktop/TempDir/" verwenden.

+0

Habe mir gerade Zeit und viel Wall-Head-Bang gerettet! – Moseleyi

6

Warum nicht einfach:

mkdir -p "$CLIENT_BUILD_DIR" 

Hinweis -p.

+0

Toller Tipp! Vielen Dank! –

Verwandte Themen