इन पंक्तियों को अपने साथ जोड़ें .bashrc
:
prompt_on_top() {
tput cup 0 0
tput el
tput el1
}
pre_cmd() {
if [ "$BASH_COMMAND" = "$PROMPT_COMMAND" ] || [ -n "$COMP_LINE" ]; then
return
fi
printf "\33[2J"
}
PROMPT_COMMAND="prompt_on_top"
trap 'pre_cmd' DEBUG
bash
Have PROMPT_COMMAND है, जो आदेश पकड़ से पहले निष्पादित किया जाएगा bash
शो शीघ्र। यहां हम इसे फ़ंक्शन पर सेट करते हैं prompt_on_top
, जो स्क्रीन के शीर्ष पर कर्सर सेट करने के लिए tput का उपयोग करते हैं।
bash
सिग्नल को संभालने के लिए ट्रैप का उपयोग करके, किसी भी कमांड को निष्पादित करने से पहले कमांड को निष्पादित करने का एक तरीका है DEBUG
। यहां हमने इसे फ़ंक्शन पर सेट किया है pre_cmd
, जो पुरानी स्क्रीन को साफ़ करेगा, और कुछ भी नहीं करेगा अगर हमने पूरा किया ( COMP_LINE खाली नहीं है) या में कमांड चलाएं BASH_PROMPT
।
इस दृष्टिकोण के साथ एक सीमा है, अगर कमांड आउटपुट बहुत लंबे समय तक एक स्क्रीन में फिट है, तो आउटपुट prompt_on_top
कार्रवाई से ओवरराइड हो जाएगा । इस मामले में, आपको पूरे आउटपुट को पढ़ने के लिए आउटपुट को पेजर तक पाइप करने की आवश्यकता है।
cat
एक फ़ाइल, यह उलटा क्रम होगा?