प्रसंग और प्रश्न
टर्मिनल और शेल वातावरण को रंगीन करने के कई तरीके हैं। व्यक्तिगत आदेशों के आउटपुट, जैसे ls
और grep
, को भी रंगीन किया जा सकता है। प्रत्यक्ष रूप से संबंधित नहीं है, लेकिन फिर भी दिलचस्प गैर- सांत्वना में मीडिया चलाने की धारणा है, लेकिन यह प्रतीत होता है कि विंडो सिस्टम के शीर्ष पर कुछ ढांचे (पुस्तकालयों) पर निर्भर है। निम्नलिखित प्रश्न को पूरी तरह से bash
खोल दिया गया है और लिनक्स टर्मिनल फ्रेमवर्क और इसके अंडरपिनिंग में इसके कार्यान्वयन ।
कृपया 2 डी गेम में एक दृश्य के ASCII "रेंडरिंग" के निम्नलिखित असेंबल पर विचार करें :
ये बेतरतीब ढंग से उत्पन्न दृश्य नहीं हैं। जिन खंडों का मैंने चयन किया है, वे वास्तव में "घास के मैदान" इलाके (पेड़, झाड़ियों और झाड़ियों, फूलों, घास आदि) के कुछ रूप को चित्रित करते हैं, जो ऐसी वस्तुओं का प्रतिनिधित्व करने के लिए ASCII वर्णों का उपयोग करता है। अंतिम 4 दृश्यों के प्रदर्शन वाले उपयोगकर्ता ने टाइलें बनाईं जो मूल रूप से रंगीन चश्मे के साथ ASCII वर्णों का रीमैप हैं (इस तरह के विवरण तुच्छ हैं - यह कहने के लिए पर्याप्त है कि यह दृश्य प्रेरणा है जो मैं यहां दृश्य के संदर्भ में पूरा करने की कोशिश कर रहा हूं और " पैटर्न ")।
असेंबल शेयर में उन दृश्यों की सामान्य विशेषताएं हैं:
- 5-6 अलग-अलग ASCII वर्ण (अल्पविराम, उद्धरण चिह्न और कुछ अन्य)
- 2-4 रंगों का इस्तेमाल किया
- पात्रों के लिए
- कुछ मामलों में चरित्र की पृष्ठभूमि के लिए - एक पैटर्न बनाने के लिए बहुत कम या कोई चरित्र के साथ रंग के रंगों का उपयोग दिखाने के लिए अंतिम उदाहरण है - रंग मोज़ेक
इस समय एक वीएम में मेरे पास आर्क लिनक्स है और हालांकि यह सवाल विशिष्ट वितरण नहीं है, मैंने फ़ाइल को कस्टमाइज़ करने के लिए उनके प्रलेखन में देखा है /etc/bash.bashrc
। मैं देख सकता हूं कि बहुत सारे समझाने वाले प्रॉम्प्ट की उपस्थिति और आम तौर पर सभी अग्रभूमि तत्वों को कॉन्फ़िगर करने में जाते हैं। पृष्ठभूमि के लिए किसी भी कॉन्फ़िगरेशन पर बहुत कम जानकारी है, आमतौर पर एक ठोस रंग को छोड़कर, जैसे कि ये सेटिंग्स और टिप्स :
# Background
On_Black='\e[40m' # Black
On_Red='\e[41m' # Red
On_Green='\e[42m' # Green
On_Yellow='\e[43m' # Yellow
On_Blue='\e[44m' # Blue
On_Purple='\e[45m' # Purple
On_Cyan='\e[46m' # Cyan
On_White='\e[47m' # White
मैं अभी भी वैचारिक रूप से समझ नहीं पा रहा हूं कि वे रिक्त / रिक्त / पृष्ठभूमि "रिक्त स्थान" क्या हैं जो मैंने टाइप नहीं किया था जब मैं कंसोल का उपयोग करता हूं अर्थात "वे किस चीज से बने होते हैं?" इतनी बात करने के लिए। विशेष रूप से उन है कि संकेत पर नहीं हैं, और जो गूंज रहे हैं आदेशों के आसपास लपेटो। सक्रिय रेखा पर क्या होता है, इसके संबंध में, यह प्रदर्शित करना संभव है कि bash
"लाइन-ओरिएंटेड" तरीके से कार्य करता है और यह कि कुछ ऑपरेशन सक्रिय लाइन की क्लीयरिंग को ट्रिगर करते हैं ( for i in $(seq 1 $(expr $(tput lines) \* $(tput cols))); do echo -n M; done; tput cup 15 1
फिर, प्रॉम्प्ट पर एक char और backspace इसे टाइप करते हैं - प्रदर्शित एक अंशदाता) - जिसकी सीमा एक CLI से दूसरे यानी zsh में भिन्न हो सकती है। इसके अलावा, ऐसा लगता है जब मैं \[\033[44m\]
अपने PS1 लाइन में कुछ जोड़ता हूं जैसे ही bash.bashrc
मुझे बैश को फिर से लोड करने के बाद एक नीली पृष्ठभूमि मिलती है - तो जाहिर है मुझे पता है कि कुछ हैपृष्ठभूमि के रूप में उत्पादन उपस्थिति insofar से अधिक लाभ यहाँ है।
लेकिन मुझे यह भी पता है कि बैश सॉफ्टवेयर सॉफ्टवेयर का एक टुकड़ा है जो स्क्रीन पर चीजों को लाने के लिए TTY सबसिस्टम के रूप में किसी अन्य सुविधा पर निर्भर करता है - और यह वहाँ से नीचे गिरे हुए वीटी घटक को मान लेता है। pstree -Ap
पर और फिर से systemd
जुड़े आर्क शो पर ।login
bash
आर्क लिनक्स वितरण पर निर्भर करता है agetty
TTY सेवाओं के लिए। एक साधारण echo $TERM
उपयोग में टर्मिनल का प्रकार निकलेगा ("linux" यहाँ किसी भी DE के बाहर) और infocmp[-d spec1 spec2]
बिना किसी पैरामीटर के कमांड टर्मिनल टर्मिनल (5) टर्मिनल डेटाबेस से सक्रिय टर्मिनल क्षमताओं और प्रोफ़ाइल जानकारी दिखाता है :
# Reconstructed via infocmp from file: /usr/share/terminfo/l/linux
linux|linux console,
am, bce, ccc, eo, mir, msgr, xenl, xon,
colors#8, it#8, ncv#18, pairs#64,
acsc=+\020\,\021-\030.^Y0\333'\004a\261f\370g\361h\260i\316j\331k\277l\332m\300n\305o~p\304q\304r\304s_t\303u\264v\301w\302x\263y\363z\362{\343|\330}\234~\376,
bel=^G, blink=\E[5m, bold=\E[1m, civis=\E[?25l\E[?1c,
clear=\E[H\E[J, cnorm=\E[?25h\E[?0c, cr=^M,
csr=\E[%i%p1%d;%p2%dr, cub=\E[%p1%dD, cub1=^H,
cud=\E[%p1%dB, cud1=^J, cuf=\E[%p1%dC, cuf1=\E[C,
cup=\E[%i%p1%d;%p2%dH, cuu=\E[%p1%dA, cuu1=\E[A,
cvvis=\E[?25h\E[?8c, dch=\E[%p1%dP, dch1=\E[P, dim=\E[2m,
dl=\E[%p1%dM, dl1=\E[M, ech=\E[%p1%dX, ed=\E[J, el=\E[K,
el1=\E[1K, flash=\E[?5h\E[?5l$, home=\E[H,
hpa=\E[%i%p1%dG, ht=^I, hts=\EH, ich=\E[%p1%d@, ich1=\E[@,
il=\E[%p1%dL, il1=\E[L, ind=^J,
initc=\E]P%p1%x%p2%{255}%*%{1000}%/%02x%p3%{255}%*%{1000}%/%02x%p4%{255}%*%{1000}%/%02x,
kb2=\E[G, kbs=\177, kcbt=\E[Z, kcub1=\E[D, kcud1=\E[B,
kcuf1=\E[C, kcuu1=\E[A, kdch1=\E[3~, kend=\E[4~, kf1=\E[[A,
kf10=\E[21~, kf11=\E[23~, kf12=\E[24~, kf13=\E[25~,
kf14=\E[26~, kf15=\E[28~, kf16=\E[29~, kf17=\E[31~,
kf18=\E[32~, kf19=\E[33~, kf2=\E[[B, kf20=\E[34~,
kf3=\E[[C, kf4=\E[[D, kf5=\E[[E, kf6=\E[17~, kf7=\E[18~,
kf8=\E[19~, kf9=\E[20~, khome=\E[1~, kich1=\E[2~,
kmous=\E[M, knp=\E[6~, kpp=\E[5~, kspd=^Z, nel=^M^J, oc=\E]R,
op=\E[39;49m, rc=\E8, rev=\E[7m, ri=\EM, rmacs=\E[10m,
rmam=\E[?7l, rmir=\E[4l, rmpch=\E[10m, rmso=\E[27m,
rmul=\E[24m, rs1=\Ec\E]R, sc=\E7, setab=\E[4%p1%dm,
setaf=\E[3%p1%dm,
sgr=\E[0;10%?%p1%t;7%;%?%p2%t;4%;%?%p3%t;7%;%?%p4%t;5%;%?%p5%t;2%;%?%p6%t;1%;%?%p7%t;8%;%?%p9%t;11%;m,
sgr0=\E[0;10m, smacs=\E[11m, smam=\E[?7h, smir=\E[4h,
smpch=\E[11m, smso=\E[7m, smul=\E[4m, tbc=\E[3g,
u6=\E[%i%d;%dR, u7=\E[6n, u8=\E[?6c, u9=\E[c,
vpa=\E[%i%p1%dd,
जैसा कि यह खड़ा है, टर्मिनल फ्रेमवर्क से कई क्षमताओं का लाभ उठाया जा सकता है और यह मूल रूप से उन विशेषताओं को है जो bash.bashrc कॉन्फ़िगरेशन फ़ाइल इंसोफ़र में उजागर होती हैं क्योंकि प्रॉम्प्ट को PS1 चर सेट करके अनुकूलित किया जाता है। नियंत्रण और भागने के अनुक्रमों का उपयोग टर्मिनल में डेटाबेस में प्रदर्शित होने वाले चरित्र के प्रवाह को मूल रूप से बाधित करने के लिए किया जाता है, जिसमें कर्सर और टर्मिनल सूचना डेटाबेस में वर्णित अन्य क्षमताओं को स्थानांतरित करना शामिल है। उन कार्यों में से कई को अच्छी तरह से ज्ञात ESC[
(या \ 33) नियंत्रण अनुक्रम परिचयकर्ता ( यहां और यहां और अधिक अनुक्रम और कुछ उदाहरण ) का उपयोग करके पारित किया जाता है । इसके अलावा, इसका उपयोग करना भी संभव हैtput
कुछ टर्मिनल गुणों को बदलने के लिए सीएलआई पर सीधे उपयोगिता; उदाहरण के लिए tput setab 4
नीले रंग की पृष्ठभूमि पर बैश इको कमांड होंगे।
यदि हम strace bash
एक्शन में भागने के क्रम और व्यवहार दोनों को देख सकते हैं:
write(2, "[il@Arch64vm1 ~]$ ", 19[il@Arch64vm1 ~]$ ) = 19 //bash starts
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(0, " ", 1) = 1 //pressed <space>
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
write(2, " ", 1 ) = 1
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(0, "\177", 1) = 1 //pressed <backspace>...
rt_sigprocmask(SIG_BLOCK, [INT], [], 8) = 0
write(2, "\10\33[K", ) = 4 //triggers erasing the line
rt_sigprocmask(SIG_SETMASK, [], NULL, 8) = 0
rt_sigprocmask(SIG_BLOCK, NULL, [], 8) = 0
read(0, "\33", 1) = 1 //pressed <esc> per se
यह प्रश्न के लिए संदर्भ प्रदान करता है कि क्या टर्मिनल में खाली स्थान / पृष्ठभूमि का रंग ASCII वर्णों के यादृच्छिक (लेकिन सुंदर) सेट से बदला जा सकता है? लेकिन इस बात का कोई अंदाजा नहीं है कि मैं टर्मिनल में किस तरह की विशेषताओं को लागू कर रहा हूं या क्या देख रहा हूं।
इसलिए मैंने एक क्रूड मॉकअप बनाया है, जिसका उदाहरण यह हो सकता है कि अंतिम परिणाम ऐसा दिख सकता है यदि यह संभव था (गंभीरता से नहीं :):
मूल रूप से टर्मिनल में सभी "खाली जगह" पैटर्न के साथ भरी जाएगी (यहाँ मैं ऊपर से छवि में से एक "टाइल" करता हूं, लेकिन मैं प्रत्येक व्यक्ति के लिए वास्तविक कार्यान्वयन में चाहूंगा "रिक्त" को यादृच्छिक रूप से सेट के सेट से उत्पन्न किया जाएगा। 5-6 पात्रों और विशेषताओं को असेंबल से प्रलेखित किया गया है जो निर्दिष्ट किया जाएगा)। सक्रिय कमांड लाइन के लिए एक अलग पैटर्न है, जो लहरदार "पानी" है, लेकिन मैं नीले होने वाली लाइन के लिए व्यवस्थित हो जाऊंगा। जैसा कि यह कल्पना की गई थी, कमांड्स "पानी" को "मिटा" देंगे क्योंकि वे सक्रिय रेखा पर टाइप हो जाते हैं और निश्चित रूप से एक बाधा यह होगी कि वर्णों के पैटर्न को सीएलआई द्वारा कभी भी व्याख्या नहीं किया जाता है अन्यथा यह बेकार हो जाएगा।
तो क्या bash
टर्मिनल फ्रेमवर्क में या उसके अंदर कोई विन्यास सामने आया है , या एक स्क्रिप्ट जो वर्णों के एक सेट का उपयोग करने की अनुमति देगी और टर्मिनल में बैश के उत्पादन को संशोधित करने के लिए रंगों पर कुछ नियंत्रण होगा ताकि पृष्ठभूमि के लिए कुछ यादृच्छिक पैटर्न उत्पन्न हो सके। (जो मैंने ऊपर दिखाया है, उसके समान होगा) या मैं बस के लिए पृष्ठभूमि के रूप में एक पूर्ण पैटर्न छवि की आपूर्ति करने की कोशिश कर कुछ की तरह बसना चाहिए ?
क्रियान्वयन
0.1 - पैटर्नॉट संस्करण (लॉगिन करते समय एक शॉट सौदा)
निम्न अभिव्यक्ति जो मैंने अपने .bashrc फ़ाइल में जोड़ी है, हमने कुछ धारणाओं का पता लगाया है और हमने मानक लिनक्स टर्मिनल में विज़ुअल्स के लिए अवधारणा का एक (बहुत) मूल प्रमाण प्रस्तुत किया है:
for i in $(seq 1 $(expr $(tput lines))); do echo -en '\E[32;32m'$(tr -dc '",.;:~' < /dev/urandom | head -c $(tput cols)); done; tput cup 15; tput setab 4; echo -en "\E[2K"; tput setab 0
टिप्पणियों
- यह स्पष्ट रूप से सिर्फ एक कमांड है, इसलिए यह स्थायी नहीं है यानी यह स्क्रॉल दूर है क्योंकि कमांड टाइप हो जाता है
- व्यक्तिगत रूप से चयन क्रमहीन मत अक्षरों यानी विकल्प चुना
head -c 1
के साथtput cols
यह बहुत धीमी गति से है, क्योंकि - लाइनों गुणा के साथ शुरू है, जो उद्धृत चयन से व्यक्ति यादृच्छिक वर्ण मुद्रित होगा। मुझे नहीं लगता किrandom
एक (tput cols) लंबा पूर्णांक उत्पन्न करता है लेकिन फिर भी यह तेज है। निश्चित रूप से यह सब बहुत बेकार है लेकिन यह काम करता है। - हरे रंग के अलावा किसी भी रंग या प्रभाव को यादृच्छिक रूप से नियंत्रित नहीं किया गया है या अन्यथा उस हरे को छोड़कर क्योंकि जैसा कि मैंने समझाया कि प्रत्येक चार को व्यक्तिगत रूप से प्रस्तुत करना / प्रसंस्करण करना बहुत धीमा है। पुन :: फ्रेम बफ़र?
- मुझे यह देखकर खुशी हुई कि पैटर्न सीएलआई द्वारा व्याख्या नहीं किए जाने के अर्थ में सीएलआई उपयोग में हस्तक्षेप नहीं करता है! (हालांकि मैं क्यों नहीं समझा सकता)
- पानी बहुत तेज चला गया है! ;-)
0.2 - PROMPT_COMMAND हैक नौकरी
परिवर्तन के मूल्य PROMPT_COMMAND को बैश प्रिंट से पहले प्रत्येक प्राथमिक संकेत की जांच की जाती है। मुझे पता है कि आमतौर पर आप एक स्क्रिप्ट को कॉल करने के लिए वैरिएबल का उपयोग करेंगे जहां आप डिस्प्ले आदि से तत्वों को प्रोसेस कर सकते हैं, लेकिन मैं सीधे मेरी .bashrc फ़ाइल में सीधे करने की कोशिश कर रहा हूं। शुरू में मुझे लगा कि मैं कुछ स्थिति संबंधी जागरूकता को लागू कर सकता हूं, जहां निष्पादन से पहले कर्सर है (इसलिए मैं स्क्रीन पर चीजों को कहीं भी प्रस्तुत कर सकता हूं और tput
फिर उस स्थिति में वापस आ सकता हूं जो मैं पहले था, स्थिति को निकालने के लिए कुछ इस तरह का उपयोग करके :
stty -echo; echo -n $'\e[6n'; read -d R x; stty echo; echo ${x#??} //value is in x;x format so...
मैं मान को पाइप करूँगा cut -f1 -d";"
। मैं सीएलआई पर ऐसा कर सकता हूं, लेकिन पीएस 1 / पी_सी चर में तत्वों के अनुक्रम के अंदर यह काम करना फिलहाल मेरी पहुंच से बाहर है और संभव है कि PROMPT_COMMAND में जो भी कमांड डाली जाए, उसका मूल्यांकन हर गाड़ी के रिटर्न में न किया जाए, बल्कि हर बार निष्पादित होने के बावजूद केवल एक बार (?) (नीचे टिप्पणियों को देखें)।
तो मैं जो सबसे अच्छा कर सकता था वह अपने प्रारंभिक अनुक्रम को पूरा करने और PROMPT_COMMAND और .bashrc में PS1 चर की परिभाषा दोनों में कुछ कमांड जोड़ सकता है। इस तरह:
PROMPT_COMMAND="echo -en '\E[32;32m'$(tr -dc ',.:~' < /dev/urandom | head -c $(echo "$[$(tput cols) * 2]"))"
PS1="$(echo -en '\n') $(tput setab 4)$(echo -en "\E[2K")$(tput setab 0)\[\033[7;32m\]df:\[\033[1;34m\] \W @d \[\033[0m\]\e[32m"
for i in $(seq 1 $(expr $(tput lines))); do echo -en '\E[32;32m'$(tr -dc '",.;:~' < /dev/urandom | head -c $(tput cols)); done; tput cup 1; tput setab 4; echo -en "\E[2K"; tput setab 0
सारांश में, मैं P_C का उपयोग कर रहा हूं ताकि एक स्थायी दृश्य पैटर्न को लागू करने का प्रयास किया जा सके अर्थात 2 लाइनें जोड़ी जा सकें। दुर्भाग्य से मैं अपनी "वाटर" ट्रिक को दोहराते हुए इस पैटर्न को बनाने में सफल नहीं हो सकता अर्थात सक्रिय लाइन ब्लू (जो सिर्फ बैकग्राउंड कलर बदल रहा है, क्लियर लाइन कर रहा है, फिर बैकग्राउंड को ब्लैक में बदल रहा है)। मैंने यह दिखाने के लिए एक साथ एक चित्र डाला है कि यह कैसे एक साथ चलता है:
टिप्पणियों
- एक लाइन पर बैकस्पेस का उपयोग करना अभी भी स्पष्ट रेखा व्यवहार को ट्रिगर करता है और नीला चला जाता है
- हर बार एंटर की दबाए जाने पर नई सक्रिय लाइन से पहले पैटर्न की 2 लाइनें होती हैं
- बेशक, जैसा कि हम अतिरिक्त रेखाओं के बावजूद नीचे देखते हैं, हम पैटर्न को कमांड की तरफ से लपेट नहीं रहे हैं जैसे कि
ls
- जब P_C में कहा जाता है तो / dev / urandom की यादृच्छिकता इतनी यादृच्छिक नहीं लगती है। यह चित्र 2 छवियों में से बना है, लेकिन यह चुनना आसान है कि अतिरिक्त 2 पंक्तियों का पैटर्न हमेशा एक जैसा होता है यानी यादृच्छिकता प्रत्येक दर्ज कुंजी के साथ उत्पन्न नहीं होती है, लेकिन प्रत्येक दो पंक्तियों के लिए केवल एक समय - संभवतः केवल पहला समय .bashrc द्वारा पढ़ा जाता है
bash
। - PS1 चर की सामग्री के साथ शुरू होता है
$(echo -en '\n') $(tput setab 4)
- अच्छी तरह से बीच में उस स्थान, $ (tput ...) से पहले, यह काम करने के लिए वहाँ होना चाहिए। अन्यथा ब्लू लाइन प्रॉम्प्ट के ऊपर दिखाई देती है और उसके सामने नहीं और मैं इसका समाधान नहीं कर सकता। और यह हैक वह है जो अपना नाम 0.2 देता है। :)
0.3 - tput cuu
औरtput cud
for i in $(seq 1 $(expr $(tput lines))); do echo -en '\E[0;32m'$(tr -dc '",.o;:~' < /dev/urandom | head -c $(tput cols)); done; tput cup 1
PROMPT_COMMAND="echo -en '\033[0;32m$(tr -dc ',;o.:~' < /dev/urandom | head -c $(tput cols))\n\033[36;44m$(tr -dc '~' < /dev/urandom | head -c $(tput cols))\033[0;32m$(tr -dc ',.o+;:~' < /dev/urandom | head -c $(tput cols))'$(tput cuu 2)"
PS1="\[\033[0m\] \[\033[1;32m\][1]\[\033[7;32m\]=2=:\W)\[\033[0;32m\]=3=\[\033[1;32m\]=4=@>\[\033[0;32m\]"
PROMPT_COMMAND के साथ जो किया जाता है वह यह है कि प्रॉम्प्ट जेनरेट होने से पहले हर बार पैटर्न की 3 लाइनें प्रिंट की जाती हैं - और उन 3 सेट पैटर्न को व्यक्तिगत रूप से 0.2 में बताई गई बाधाओं के भीतर उत्पन्न होता है - पानी के लिए अर्थहीन क्योंकि यह 1 char है लेकिन फिर भी। फिर हम दो पंक्तियों का उपयोग करते हुए ऊपर जाते हैं tput cuu 2
और PS1 के अनुसार मध्य रेखा पर संकेत उत्पन्न होता है। हमारे पास अभी भी .bashrc लोड पर पूर्ण स्क्रीन पैटर्न के लिए कमांड का हमारा प्रारंभिक सेट है जो टर्मिनल पर लॉग इन करते समय केवल एक बार निष्पादित होता है। अब हमारे पास सक्रिय लाइन के आसपास कुछ पैडिंग है जिसका अपना नीला पैटर्न है जो हमेशा वापसी गाड़ी होने पर दोहराया जाता है। PS1 चर और P_C की सामग्री को पवित्रा किया गया है। भागने के अनुक्रम और रंग कोडिंग के वाक्यविन्यास लंबे समय के भीतर एम्बेडेड होते हैंecho
अनुक्रम मुश्किल हो सकता है। त्रुटियां अजीब टर्मिनल व्यवहार को जन्म देती हैंएक दूसरे को अधिलेखित करने वाली पंक्तियों सहित, एक प्रॉम्प्ट जो बाएं मार्जिन या असामान्य आउटपुट से दूर सामान के लिए दिखाई देता है जिसे अनायास ही संसाधित किया गया है। एक स्थिति यह है कि मैं क्या कर रहा हूं, जहां मेरे सेटअप (आर्क बैंग) के साथ लिनक्स टर्मिनल और lxterm के बीच एक दृश्य अंतर का सामना करने के लिए PS1 चर के अंदर एक अतिरिक्त स्थान की आवश्यकता है। अतिरिक्त स्थान के बिना, लिनक्स टर्मिनल किसी कारण के लिए अंतिम पंक्ति के अंत में प्रॉम्प्ट के पहले चरित्र को प्रिंट करता है किसी कारण से मैं यह पता नहीं लगा सकता (निश्चित रूप से यह ऐसा कुछ है जो मैं करता हूं और डिफ़ॉल्ट व्यवहार नहीं)। यह भी पता नहीं लगाया जा सकता है कि उद्धरण चिह्नों में चार सेट के लिए कुछ यादृच्छिक प्रभाव (बोल्ड, उलटा आदि) कैसे उत्पन्न किया जाता है, क्योंकि यह प्रदर्शन बढ़ाने के लिए लंबे समय तक तार उत्पन्न करने के लिए जल्दी तय किया गया था।
टर्मिनल खुलने पर प्रारंभिक पैटर्न
एक के बाद व्यवहार clear
और दबाने पर तुरंत क्रम में प्रवेश करते हैं
टिप्पणियों
- थोक में इसे करने से परे पैटर्न को रंग देने के लिए लागू करने के लिए पुन: डिज़ाइन या संशोधित किया जाना चाहिए
- यह महसूस करना शुरू करना कि बहुत आगे जाना या तो सभी को एक स्क्रिप्ट में डालना होगा या अमूर्तता के कुछ उच्च रूप का लाभ उठाना होगा। लेकिन अंतिम उपयोगकर्ता के लिए टर्मिनल क्षमताएं काफी सक्षम हैं (मुझे "लोगो" की याद दिलाती हैं)!