2011-05-08 16 views
24

क्या शैल स्क्रिप्ट में एक साधारण ~ (tilde) के बजाय परिवर्तनीय $HOME का उपयोग करने का कोई कारण है?

उत्तर

31

टिल्ड विस्तार /foo/bar:~/baz

+0

यह कहां काम नहीं करता है, इसके दूसरे उदाहरण के लिए, @no_allotment द्वारा उत्तर पर स्क्रॉल करें। – H2ONaCl

11

पोर्टेबिलिटी और $HOME की एकरूपता की तरह तार के बीच में कुछ स्थितियों में काम नहीं करता है, की तरह। टिल्डे एक टाइपिंग शॉर्टकट है।

+1

तो मैं समझने में सही हूं कि ऐसे गोले या सिस्टम हैं जिनमें टिल्डे $ HOME का समानार्थी नहीं है? – mybuddymichael

+5

@ माइकल हां, सोलारिस 10 में डिफ़ॉल्ट 'sh' tilde को' $ HOME 'के रूप में नहीं मानता है और न ही '~ username' का विस्तार करता है। – evolvah

6

आज मैंने पाया कि टिल्ड विस्तार डबल कोटेशन ("") में काम नहीं करता है।

zsh में (खेद मैं अन्य गोले के व्यवहार की जांच नहीं की थी।),

दोहरे उद्धरण चिह्नों ("") के अंदर, पैरामीटर और आदेश प्रतिस्थापन घटित

टिल्ड विस्तार एक है फ़ाइल नाम विस्तार, इसलिए यह डबल उद्धरण के अंदर विफल रहता है।
$HOMEपैरामीटर प्रतिस्थापन है और इसे डबल कोटेशन के अंदर विस्तारित किया जा सकता है।
$HOME एक सुरक्षित शर्त है।

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