ठीक है, जब मैं कुछ कमांड गलत तरीके से चलाता हूं, (गलत वर्तनी, आदि) टर्मिनल इसे आउटपुट करता है: >
इसके बजाय computername:workingfolder username$
, और जब मैं टाइप करता हूं तो यह इस तरह से जाता है:
>
>
>
अगर मैं 3 बार दबाया गया तो यह होगा।
ठीक है, जब मैं कुछ कमांड गलत तरीके से चलाता हूं, (गलत वर्तनी, आदि) टर्मिनल इसे आउटपुट करता है: >
इसके बजाय computername:workingfolder username$
, और जब मैं टाइप करता हूं तो यह इस तरह से जाता है:
>
>
>
अगर मैं 3 बार दबाया गया तो यह होगा।
जवाबों:
>
डिफ़ॉल्ट निरंतरता है। क्या आप असंतुलित बोली के निशान था इससे पहले कि आप दर्ज किया है अगर आप देखेंगे क्या है।
एक उदाहरण के रूप में, कमांड लाइन पर कुछ enter
कुंजियों के बाद एक एकल उद्धरण टाइप करें:
$ '
>
>
>
निरंतरता के संकेत तब तक मिलेंगे जब तक आप या तो
(a) क्लोजिंग उद्धरण चिह्न के साथ कमांड को पूरा करें
या
(b) इनपुट खत्म करने के लिए टाइप Ctrl+ D, जिस बिंदु पर शेल असंतुलित उद्धरणों के बारे में त्रुटि संदेश के साथ प्रतिक्रिया देगा,
या
(c) टाइप Ctrl+ Cजो उस कमांड को निरस्त कर देगा जो आप दर्ज कर रहे थे।
कुछ समय बाद, आप एक स्ट्रिंग दर्ज करना चाह सकते हैं जिसमें एम्बेडेड नई लाइनें हों। आप निम्नानुसार कर सकते हैं:
$ paragraph='first line
> second line
> third line
> end'
अब, जब हम उस शेल चर को प्रदर्शित करते हैं, तो आप देख सकते हैं कि संकेत गायब हो गए हैं, लेकिन नए सिरे को बनाए रखा गया है:
$ echo "$paragraph"
first line
second line
third line
end
यदि आपके आदेश में एक अयोग्य उद्धरण है, तो यह होगा। वह कुछ इस तरह है:
$ echo "test here
>
>
...
आप उद्धरण को बंद करके ( "
या '
, या आपकी खुली बोली जो भी हो) उस मोड से बाहर निकल सकते हैं । यह एक ब्रेस-सीमांकित ब्लॉक, आंशिक रूप से पूर्ण for-do
या while-do
लूप या कुछ अन्य निर्माण भी हो सकता है। आप Ctrl-Cइस आदेश को रद्द करने के लिए भी दबा सकते हैं (फिर Upइसे संशोधित करने के लिए दबाएं )।
यह कभी-कभी एक स्पष्ट लापता उद्धरण के बिना हो सकता है जब पैरामीटर या इतिहास विस्तार होता है जहां आप उनसे उम्मीद नहीं करते थे।
>
आपके है PS2
( "माध्यमिक शीघ्र") मूल्य। आप बदल सकते हैं कि कुछ और आपको याद दिलाने के लिए कि क्या हुआ है:
PS2="Unclosed >"
आपके बजाय यह प्रत्येक पंक्ति के प्रारंभ में .bashrc
प्रिंट करेगा Unclosed >
।
अन्य उत्तरों के अलावा, आपको \
एक पंक्ति में अंतिम वर्ण के रूप में टाइप करने पर निरंतरता संकेत भी मिलता है ।
जवाब बैश संदर्भ नियमावली में इस गूढ़ उल्लेख में निहित है :
5.1 बॉर्न शैल चर
[...]
PS1
: प्राथमिक शीघ्र स्ट्रिंग। डिफ़ॉल्ट मान '\s-\v\$
' है। प्रिंटिंग प्रॉम्प्ट देखें , भागने के अनुक्रमों की पूरी सूची के लिए जो पहलेPS1
प्रदर्शित किए गए हैं।PS2
: माध्यमिक शीघ्र स्ट्रिंग। डिफ़ॉल्ट मान '>
' है।
… इसके बाद :
6.3.3 इंटरएक्टिव शैल व्यवहार
- बैश
PS1
एक कमांड की पहली लाइन पढ़ने से पहले फैलता है और प्रदर्शित करता है, औरPS2
एक मल्टी-लाइन कमांड की दूसरी और बाद की लाइनों को पढ़ने से पहले फैलता है और प्रदर्शित करता है ।
इसलिए, >
यदि आप दबाते हैं तो प्रॉम्प्ट दिखाई देता है Enterऔर बैश यह निर्धारित करता है कि कमांड अधूरी है। ऐसा इसलिए हो सकता है:
\
, जिसे लाइन निरंतरता के रूप में माना जाता है ।$()
, ()
, ``
।for
लूप, while
लूप या ए शुरू किया है case
।यदि आप अनजाने टाइपिंग त्रुटि के कारण द्वितीयक संकेत देख रहे हैं, ControlCतो प्राथमिक संकेत पर वापस जाएँ।