अपने प्रश्न में, आप का अर्थ है कि आप लाइन को बिल्कुल उद्धृत नहीं कर रहे हैं; यह स्पष्ट रूप से गलत है, क्योंकि तब स्पेस तर्क असाइनमेंट "PS1 = [\ u @ \ h" को कमांड "\ W] \ $" से अलग कर देगा। कृपया महसूस करें कि हर चरित्र महत्वपूर्ण है।
वैसे भी, जो आप शायद कर रहे हैं, एकल वाले (') के बजाय दोहरे उद्धरण (") का उपयोग कर रहे हैं। वे बहुत अलग व्यवहार करते हैं जब यह खोल की बात आती है कि आपने क्या टाइप किया है। दोहरे उद्धरण चिह्नों के साथ, यह चतुर चीजों को करने की कोशिश करेगा। बैकस्लैश / कुछ-वर्णों के अनुक्रम। इस असाइनमेंट के लिए, क्योंकि \ u, \ h, और \ W के बारे में कुछ खास नहीं है, वे अछूते रह गए हैं; वर्ग कोष्ठक के विभिन्न स्थानों में विशेष अर्थ हो सकते हैं, लेकिन इस मामले में नहीं; इसलिए वे भी जगह में छोड़ दिए गए हैं; लेकिन चूंकि $
उनमें से कई प्रकार के अर्थ हैं, उनमें से सभी विशेष हैं, \$
अनुक्रम को "डॉलर के संकेत की विशिष्टता को अनदेखा करना, और बस वहां छोड़ देना" के रूप में व्याख्या की गई है, और उस अनुक्रम को बदल दिया गया है नो-आगे-पार्स किए गए एकल डॉलर का संकेत। उस सभी का परिणाम सौंपा गया हैPS1
, और जब से एक शाब्दिक डॉलर चिह्न है, और जादू \$
अनुक्रम नहीं है जब शेल वास्तविक प्रॉम्प्ट का निर्माण करता है, तो आपको बस डॉलर का संकेत मिलता है, और प्रभावी-उपयोगकर्ता-निर्भर चरित्र नहीं। वास्तविक पार्सिंग थोड़ा अधिक जटिल है, लेकिन इस विशेष उदाहरण के लिए इसका सार है।
आपने जो टाइप किया है: PS1="[\u@\h \W]\$ "
शेल किसको सौंपा है: PS1 <- "[\u@\h \W]$ "
आप क्या चाहते थे: PS1 <- "[\u@\h \W]\$ "
आपको क्या टाइप करना चाहिए:PS1='[\u@\h \W]\$ '
आपको आगे क्या करना चाहिए: शेल के बारे में अधिक जानने के लिए इस ट्यूटोरियल जैसा कुछ पढ़ें ।
PS1=[\u@\h \W]\$
लौटता है-bash: W]$: command not found
।