2013-04-18 17 views
6

Bu kodda yanlış olan herhangi bir fikir var mı?Mkdir çalışırken kabuk değişkeni sorunu

CLIENT_BUILD_DIR="~/Desktop/TempDir/" 

if [ ! -d $CLIENT_BUILD_DIR ] 
then 
    { 
     mkdir $CLIENT_BUILD_DIR 
    } 
fi 

Hatayı alıyorum: mkdir: ~/Desktop: Böyle bir dosya veya dizin yok.

Açıkçası dizin var ve ben birlikte değişkenin yerini ise komut çalışır ~/Masaüstü/TempDir/

+1

Bir ipucu daha kolaylaştırabilirsiniz, çünkü kodu '[-d $ CLIENT_BUILD_DIR] || mkdir $ CLIENT_BUILD_DIR' ve tercihen '|| echo "Direk yaratmaya çalışırken hata: $ CLIENT_BUILD_DIR" ':) – Jite

cevap

14

Alıntılar, genleşmeyi engeller ~.

Kullanım:

CLIENT_BUILD_DIR=~/Desktop/TempDir/ 

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

Bu başardı! Çok teşekkürler –

+1

Sen de değerlendirebilirsin :) – Jite

5

~ karakter değil bir değişken kullanıldığında reinterpret.

Bunun yerine CLIENT_BUILD_DIR="$HOME/Desktop/TempDir/"'u kullanabilirsiniz.

+0

Sadece zaman kazandım ve çok fazla kafa kafaya çarptı! – Moseleyi

6

olamazlar:

mkdir -p "$CLIENT_BUILD_DIR" 

Not -p.

+0

Büyük bahşiş! Teşekkürler! –

İlgili konular