मेरे में .bashrc, मैं विभिन्न बिट्स को रंग देने के लिए एएनएसआई टर्मिनल रंग कोड का उपयोग करता हूं। यह इस तरह दिख रहा है:
PS1='\u@\h:\w\[\033[33m\]$(virtual_env)\[\033[32m\]$(git_branch)\[\033[0m\]$ '
जहां virtual_envऔर git_branchbash फ़ंक्शंस हैं जो आउटपुट सामान stdout पर हैं।
अब, इसे पढ़ना और संशोधित करना आसान बनाने के लिए, मैं सीधे कोड एम्बेड करने के बजाय, चर में रंग कोड संग्रहीत करना और उन्हें संदर्भित करना चाहूंगा PS1। तो मेरे पास इस तरह चर का एक गुच्छा है:
GREEN="\[\033[32m\]"
YELLOW="\[\033[33m\]"
RESET="\[\033[0m\]"
मैं कुछ लिखना चाहूंगा:
PS1='\u@\h:\w${YELLOW}$(virtual_env)${GREEN}$(git_branch)${RESET}$ '
लेकिन यह काम नहीं करता है - रंग कोड संकेत में दिखाते हैं, जैसे वे बच गए हैं। यदि मैं इसके बजाय दोहरे उद्धरण चिह्नों का उपयोग करता हूं, तो रंग सही ढंग से काम करते हैं PS1, लेकिन तब संकेत केवल तब बदलता है जब मैं करता हूं source ~/.bashrc।
मैं अन्य बातों मैंने देखा है लोगों की कोशिश की है - का उपयोग करते हुए printf, रंग के लिए एकल उद्धरण का उपयोग कर, डाल \[और \]में PS1रंग चर के बजाय, लेकिन कुछ भी काम करने लगता है।
मैं रंग कोड के लिए चर का उपयोग कैसे कर सकता हूं?
.bashrc?