मेरा टर्मिनल थीम इस तरह का हुआ करता था,
लेकिन मुझे लगा कि प्रॉम्प्ट ने इतनी जगह बर्बाद कर दी है। और बाद में मुझे इस बात का अंदाजा हो गया कि मैं कमांड चलाने पर हर बार प्रॉम्प्ट को साफ कर सकता हूं। मैं बैश का उपयोग कर रहा था, समाधान का उपयोग preexec_invoke_exec
फ़ंक्शन का उपयोग करना है।
मैं अंतिम कमांड चार्ट को साफ करने के लिए निम्नलिखित कमांड का उपयोग करता हूं:
echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"
ताकि टर्मिनल बहुत साफ हो, जैसे,
लेकिन अब मेरी समस्या है, अगर मैं एक पंक्ति में मल्टी कमांड का उपयोग करना चाहता हूं, तो समस्या होगी , कहो, जब मैं उपयोग करूं for i in ...
।
यहाँ मेरे .bashrc में फ़ंक्शन का पूर्ण संस्करण है,
preexec () { echo -ne "\033[1A\033[K\033[1A\033[K\033[31;1m$ \033[0m"; echo -n "$1"; echo -ne " \033[37;2m["; echo -n "$2"; echo -ne "]\033[0m\n"; }
preexec_invoke_exec () {
[ -n "$COMP_LINE" ] && return # do nothing if completing
[ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] && return # don't cause a preexec for $PROMPT_COMMAND
local this_command=`history 1 | sed -e "s/^[ ]*[0-9]*[ ]*//g"`;
local this_pwd=`pwd`;
preexec "$this_command" "$this_pwd"
}
trap 'preexec_invoke_exec' DEBUG
zsh
...
for i in $(seq 1 10); do ls; done
उनके कार्य के साथ करते हैं, तो iterating कमांड का आउटपुट बोलने के लिए "निगल" जाता है। इसलिए ओपी उस संकेत को सक्षम करते हुए व्यवहार को पवित्र करना चाहता था। इसका कारण यह है कि मैं खोल, जागरूकता, प्रतिक्रिया और पोर्टेबिलिटी में जागरूकता के लिए रुचि रखता हूं। मैंने अपनी पूर्व टिप्पणी में जो लिंक डाला था, वह सुपरसर्वर के पद की ओर ले जाता है - वे इस स्निपेट को जिम्मेदार ठहराने की परेशानी में पड़ गए, इसलिए यह एक प्रोटोटाइप है, जो नेट फंक्शनल फंक्शनल (जो मुझे दिलचस्प लगता है), ट्रैप फंक्शन के रूप में करता है। यहाँ।