कुछ आदेश जो मैं डिस्प्ले रंगों का उपयोग करता हूं, लेकिन जब मैं उनका उपयोग करता हूं तो घड़ी गायब हो जाती है:
watch -n 1 node file.js
क्या किसी भी तरह से रंग वापस होना संभव है?
कुछ आदेश जो मैं डिस्प्ले रंगों का उपयोग करता हूं, लेकिन जब मैं उनका उपयोग करता हूं तो घड़ी गायब हो जाती है:
watch -n 1 node file.js
क्या किसी भी तरह से रंग वापस होना संभव है?
जवाबों:
watch
अब के कुछ नए संस्करण रंग का समर्थन करते हैं।
उदाहरण के लिए watch --color ls -ahl --color
।
संबंधित ।
watch
के साथ git diff
। Fwiw, कि तुम में पारित करने के लिए है काम करने के लिए प्राप्त करने के लिए --color=always
करने के लिए git diff
(उदाहरण के लिए watch --color git diff --color=always
।
प्रयोग नहीं करें watch
... जब आप घड़ी कार्यक्रमों का उपयोग करते हैं तो यह पता लगा सकते हैं कि वे एक टर्मिनल पर नहीं लिख रहे हैं और फिर रंग को पट्टी करें। नियंत्रण कोड रखने के लिए आपको विशिष्ट प्रोग्राम फ़्लैग का उपयोग करना चाहिए।
यदि आपको झंडे के बारे में पता नहीं है या आप नहीं हैं तो आप किसी गरीब आदमी को देख सकते हैं:
while sleep <time>; do clear; <command>; done
इसमें थोड़ा सा झिलमिलाहट होगा (घड़ी काम करता है "डबल बफर") लेकिन कुछ सामानों के लिए यह पर्याप्त उपयोगी है।
आपको डबल बफ़र्ड गरीब आदमी की घड़ी का उपयोग करने के लिए लुभाया जा सकता है
while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; done
लेकिन तब आप फिर से "मैं एक टर्मिनल पर नहीं लिख रहा हूं" फीचर को हिट करेंगे।
while sleep <time>; do clear; <command> | tee /tmp/file; done
करने के बजाय >
और cat
?
watch
और कमांड को टिमटिमाने से नहीं रोकेंगे
watch
while sleep <time> ; do x="$( <command> 2>&1 )" ; clear ; echo "$x" ; done
- यह स्क्रीन को साफ करने और आउटपुट प्रदर्शित करने के लिए केवल शेल बिल्डिंस का उपयोग करता है, इसलिए यह सबसे कम टिमटिमाता विकल्प है।
आप watch
शेल स्क्रिप्ट की कुछ पंक्तियों में मौलिक, नो-फ्रिल्स ऑपरेशन की नकल कर सकते हैं ।
$ cat cheapwatch
#!/bin/sh
# Not quite your Rolex
while true ; do
clear
printf "[%s] Output of %s:\n" "$(date)" "$*"
# "$@" <- we don't want to do it this way, just this:
${SHELL-/bin/sh} -c "$*"
sleep 1 # genuine Quartz movement
done
$ ./cheapwatch ls --color # no problem
आखिरकार, कोई बहुत ही चालाक tr
इस स्क्रिप्ट में एक कमांड को हैक करेगा जो स्ट्रिप्स को वर्णों को नियंत्रित करता है, और फिर उपयोगकर्ता को --color
उस तर्क को अक्षम करने के लिए उपयोग करने के लिए मजबूर करता है। कुछ समय के लिए, इस कार्यान्वयन की सरासर भोली रंग खाने वाले राक्षस को दूर रख रही है।
यदि आप ऐसी स्थिति में हैं जहां आपके watch
पास --color
विकल्प नहीं है और आप पैकेज को किसी भी कारण से अपग्रेड नहीं कर सकते हैं, तो शायद आप इसे फेंक सकते हैं।
हाँ
रंग उत्पादन के साथ काम करता है देखो। यह प्रॉप्स पैकेज का हिस्सा है (कम से कम डेबियन में) यहाँ आपके सवाल के लिए Bugreport है http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334 जहां वे जवाब देते हैं, कि आपको सैप्स को अपडेट करना चाहिए पैकेज
ubuntu 11.04 जैसे उदाहरण के लिए यह पैकेज http://packages.debian.org/wheezy/procps काम करता है
tl; डॉ
अद्यतन खरीदता है
हालांकि अन्य उत्तर इस समस्या को हल करते हैं, लेकिन इसे पूरा करने का सबसे आसान तरीका unbuffer
उपकरण का उपयोग करना है। इसका उपयोग करने के लिए बस करें:
$ watch --color 'unbuffer <your-program>'
इस तरह से आपको अपने प्रोग्राम के झंडे को सक्षम करने वाले नियंत्रण अनुक्रम के लिए शिकार नहीं करना पड़ता है। हालाँकि चेतावनी यह है कि आपके संस्करण को --color
ध्वज का समर्थन करना चाहिए ।
आप का उपयोग कर डेबियन या Ubuntu पर unbuffer स्थापित कर सकते हैं sudo apt-get install expect
।
'unbuffer <command>'
- यह उपयोग करने के लिए एक विशिष्ट आदेश दिए बिना कि यह प्रश्न का उत्तर कैसे देता है?
<command>
उन विशिष्ट प्रोग्राम के साथ मदद करने की ज़रूरत है जिन्हें आप रंगों के साथ चलाना चाहते हैं?
घड़ी मैनुअल से:
गैर-मुद्रण वर्ण प्रोग्राम आउटपुट से छीन लिए जाते हैं। यदि आप उन्हें देखना चाहते हैं तो कमांड पाइपलाइन के भाग के रूप में "कैट-वी" का उपयोग करें।
हालांकि, मुझे यकीन नहीं है कि इसका उपयोग कैसे किया जाए।
watch -c "ls --color|cat -v"
शो ^[[0m^[[01;34mAgent^[[0m
।
watch --color ls --color=always .