यह आपको zsh(और अब के fishरूप में) की एक विशिष्ट विशेषता है, ताकि आप स्पष्ट रूप से एक कमांड के आउटपुट में असंबद्ध लाइनों को देख सकें।
पारंपरिक गोले में, यदि कोई कमांड अंतिम न्यूलाइन वर्ण के बाद कुछ डेटा आउटपुट करता है, या, दूसरे शब्दों में, यदि यह टर्मिनल कर्सर को लाइन के शुरू में नहीं छोड़ता है, तो शेल द्वारा अगला प्रॉम्प्ट उस अंतिम अनारक्षित लाइन से जुड़ा होता है। जैसे की:
bash-4.4$ printf XXX
XXXbash-4.4$
यह संकेत देता है, और यह याद रखना आसान है कि XXXखासतौर पर अगर आपके पास उस तरह का कट्टर संकेत हो। यह कर्सर पोजिशनिंग को भी प्रभावित करता है जिसके कारण आप कर्सर को इधर-उधर ले जाते हैं।
zshइसके चारों ओर काम करता है, यह दिखाते हुए कि आउटपुट %में बोल्ड और रिवर्स वीडियो में एक चरित्र के साथ एक निर्विवाद रेखा है , और अगली पंक्ति की शुरुआत में अगला संकेत जारी करता है:
zsh-5.1.1$ printf XXX
XXX%
zsh-5.1.1$
ऐसा लगता है कि उस रिवर्स वीडियो %को हर कमांड के अंत में (प्रत्येक प्रॉम्प्ट से पहले) आउटपुट किया जाता है, लेकिन उसके बाद 79 स्पेस (एक 80 कैरेक्टर वाइड टर्मिनल मानकर), एक सीआर कैरेक्टर (जो कर्सर को पहले पर वापस जाने का कारण बनता है) कॉलम) और लाइन के अंत में मिटाने का क्रम (और फिर प्रॉम्प्ट)।
इस तरह, यदि कोई असंबद्ध पंक्ति थी, चूंकि कर्सर पहली स्थिति में नहीं है, तो वे 80 वर्ण कर्सर को अगली पंक्ति में ले %जाएंगे (और वह रहेगा)। यदि नहीं, तो वह %और वे 79 स्थान एक लाइन पर होंगे जो बाद में हटा दिए जाएंगे।
अब, यह तभी काम करता है जब टर्मिनल लाइनों को लपेटता है (उदाहरण के लिए, इसके बाद ठीक से काम नहीं करेगा tput rmam)। यदि आपके पास एक धीमा टर्मिनल है (जैसे 9600 बॉड सीरियल लाइन पर), तो आप वास्तव में उन लोगों %को दिखाई दे सकते हैं और फिर प्रत्येक कमांड के बाद हटाए जा सकते हैं , जिससे zshआप उस सुविधा को अक्षम कर सकते हैं:
unsetopt prompt_cr prompt_sp
इस तरह, zshपारंपरिक गोले की तरह अधिक व्यवहार करता है।
आप उस चिह्न को परिवर्तनशील के साथ भी बदल सकते हैं $PROMPT_EOL_MARK।
print -n "this is a test"तबprint "this is a test"