2013-04-18 5 views
6

कोई भी विचार mkdir क्या इस कोड के साथ गलत है की कोशिश कर रहा?शैल चर मुद्दा जब

CLIENT_BUILD_DIR="~/Desktop/TempDir/" 

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

मुझे त्रुटि मिलती है: mkdir: ~/डेस्कटॉप: ऐसी कोई फ़ाइल या निर्देशिका नहीं।

जाहिर निर्देशिका है और स्क्रिप्ट काम करता है अगर मैं के साथ चर की जगह ~/डेस्कटॉप/tempdir/

+1

एक और टिप, तो आप कोड को आसान बनाने में कर सकते हैं करने के लिए '[-d $ CLIENT_BUILD_DIR] || mkdir $ CLIENT_BUILD_DIR' और अधिमानतः '|| जोड़ें गूंज "त्रुटि निर्देशिका बनाने का प्रयास कर: $ CLIENT_BUILD_DIR" ':) – Jite

उत्तर

14

उद्धरण ~ के विस्तार को रोकने के।

उपयोग:

CLIENT_BUILD_DIR=~/Desktop/TempDir/ 

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

उसने ऐसा किया! बहुत बहुत धन्यवाद –

+1

आप इसे भी 'eval' कर सकते हैं :) – Jite

5

~ चरित्र है नहीं जब एक चर में इस्तेमाल पुनर्व्याख्या।

आप CLIENT_BUILD_DIR="$HOME/Desktop/TempDir/" बजाय उपयोग कर सकते हैं।

+0

बस मुझे समय बचा लिया और दीवार पर सिर का एक बहुत की पिटाई! – Moseleyi

6

क्यों नहीं बस:

mkdir -p "$CLIENT_BUILD_DIR" 

नोट -p

+0

ग्रेट टिप! धन्यवाद! –

संबंधित मुद्दे