Ekran renklerini kullandığım bazı komutlar, ancak onları izle ile kullandığımda renkler kayboluyor:
watch -n 1 node file.js
Renkleri bir şekilde geri almak mümkün mü?
Ekran renklerini kullandığım bazı komutlar, ancak onları izle ile kullandığımda renkler kayboluyor:
watch -n 1 node file.js
Renkleri bir şekilde geri almak mümkün mü?
Yanıtlar:
watch
ile git diff
. FWIW, bu size geçmek zorunda işe almak için --color=always
için git diff
(örn watch --color git diff --color=always
.
Kullanmayın watch
... Saat programlarını kullandığınızda, bir terminale yazmadıklarını algılayabilir ve ardından rengi çıkarabilir. Kontrol kodlarını orada tutmak için belirli program bayrakları kullanmalısınız.
Bayrakları bilmiyorsan ya da yoksa bir fakirin adamını izletebilirsin:
while sleep <time>; do clear; <command>; done
Biraz titreyecek (izle "çift tamponlu" çalışıyor) ama bazı şeyler için yeterince kullanışlıdır.
Kullanarak çift tamponlu zavallı bir adamın saati yapmak isteyebilirsiniz.
while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; done
Ama sonra tekrar "Bir terminale yazmıyorum" özelliğine basarsınız.
while sleep <time>; do clear; <command> | tee /tmp/file; done
yerine kullanın ? >
cat
watch
do gibi renk kodlarını kaldıracak ve komutun titremesini engellemeyecek
watch
while sleep <time> ; do x="$( <command> 2>&1 )" ; clear ; echo "$x" ; done
- Ekranı temizlemek ve çıktıyı görüntülemek için yalnızca kabuk yerleşiklerini kullanır, bu nedenle en az titreşen alternatiftir.
Temel, gösterişsiz işlemi watch
birkaç satırlık bir kabuk betiğinde çoğaltabilirsiniz .
$ 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
Sonunda, çok zeki biri, tr
kontrol karakterlerini çıkaran ve ardından kullanıcıyı --color
bu mantığı devre dışı bırakmak için kullanmaya zorlayan bu komut dosyasına bir komut kırar . Şimdilik, bu uygulamanın saf saflığı renk yiyen canavarı uzak tutuyor.
Seçeneğinizin watch
olmadığı bir durumdaysanız --color
ve herhangi bir nedenle paketi yükseltemiyorsanız, belki bunu atabilirsiniz.
EVET
saat renkli çıktı ile çalışır. procps paketinin bir parçasıdır (en azından debian'da) burada sorunuz için hata raporu http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334 yanıt verdikleri yer, procps güncellemeniz gerekir paket
örneğin ubuntu 11.04 ile bu paket http://packages.debian.org/wheezy/procps çalışır
tl; Dr.
procps güncelle
Diğer yanıtlar bu sorunu çözerken, bunu başarmanın en kolay yolu unbuffer
aracı kullanmaktır . Kullanmak için yapmanız gerekenler:
$ watch --color 'unbuffer <your-program>'
Bu şekilde, programınızın bayraklarını etkinleştiren kontrol sırası aramanıza gerek kalmaz. Ancak uyarı, saat sürümünüzün aşağıdakileri desteklemesi gerektiğidir:--color
bayrağı .
Unbuffer'ı kullanarak Debian veya Ubuntu'ya yükleyebilirsiniz sudo apt-get install expect
.
'unbuffer <command>'
- kullanmak için belirli bir komut vermeden bu soruya nasıl cevap verir?
<command>
çalıştırmak istediğiniz belirli bir programla değiştirme konusunda yardıma mı ihtiyacınız var ?
Saat kılavuzundan:
Yazdırılmayan karakterler program çıktısından çıkarılır. Bunları görmek istiyorsanız komut ardışık düzeninin bir parçası olarak "cat -v" kullanın.
Yine de nasıl kullanacağımdan emin değilim.
watch -c "ls --color|cat -v"
gösterir ^[[0m^[[01;34mAgent^[[0m
.
watch --color ls --color=always .