अद्यतन : watch
निश्चित समस्या के नवीनतम संस्करणों को बाहर करता है। इसलिए, यदि रंग watch --color
गलत हैं, तो शायद इसे अपडेट करना बेहतर है (मेरे सिस्टम पर, यह procps
पैकेज में है)।
watch --color
मेरे अनुभव में रंग का समर्थन सीमित है (हालांकि इसके लिए पर्याप्त है ls -l --color
)। यहाँ कुछ अतिरिक्त सुविधाओं के साथ @ davr के उत्तर का मेरा संस्करण है, सबसे महत्वपूर्ण रूप से कम झिलमिलाना। आप इसे अपने .bashrc में रख सकते हैं और इसका उपयोग कर सकते हैं cwatch ls -l --color
।
# `refresh cmd` executes clears the terminal and prints
# the output of `cmd` in it.
function refresh {
tput clear || exit 2; # Clear screen. Almost same as echo -en '\033[2J';
bash -ic "$@";
}
# Like watch, but with color
function cwatch {
while true; do
CMD="$@";
# Cache output to prevent flicker. Assigning to variable
# also removes trailing newline.
output=`refresh "$CMD"`;
# Exit if ^C was pressed while command was executing or there was an error.
exitcode=$?; [ $exitcode -ne 0 ] && exit $exitcode
printf '%s' "$output"; # Almost the same as echo $output
sleep 1;
done;
}
आप जैसी चीजों को भी आजमा सकते हैं
cwatch 'ls -l --color | head -n `tput lines`'
यदि आपके टर्मिनल में आउटपुट से कम लाइनें हैं। यह तभी काम करता है जब सभी लाइनें टर्मिनल की चौड़ाई से कम हों, हालाँकि। मेरे लिए सबसे अच्छा समाधान यह है:
cwatch 'let lines=`tput lines`-2; ls -l --color | head -n $lines'