表示色を使用するいくつかのコマンドが、時計でそれらを使用すると、色が消えます:
watch -n 1 node file.js
何とか色を戻すことは可能ですか?
watch
を使用しないでください... watchプログラムを使用すると、端末に書き込んでいないことを検出して、色を削除できます。特定のプログラムフラグを使用して、制御コードをそこに保持する必要があります。
フラグがわからない場合、または存在しない場合は、次の方法で貧しい人を監視できます。
while sleep <time>; do clear; <command>; done
ちらつきが少しありますが(時計は「ダブルバッファリング」機能します)、一部の機能では十分に役立ちます。
を使用してダブルバッファリングの貧乏人の時計を作成したくなるかもしれません
while sleep <time>; do <command> > /tmp/file; clear; cat /tmp/file; 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
オプションがなく、何らかの理由でパッケージをアップグレードできない状況にある場合は、これをスローできます。
はい
時計はカラー出力で動作します。 (少なくともdebianでは)procpsパッケージの一部です。ここにあなたの質問のバグレポートがあります http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334 、procpsパッケージを更新する必要があること
例えばubuntu 11.04では、このパッケージは動作します http://packages.debian.org/wheezy/procps
tl; dr
procpsを更新
時計のマニュアルから:
印刷されない文字は、プログラム出力から削除されます。表示する場合は、コマンドパイプラインの一部として「cat -v」を使用します。
しかし、私はそれを使用する方法がわかりません。