私が使用するいくつかのコマンドは表示色ですが、それらをウォッチで使用すると色が消えます。
watch -n 1 node file.js
何とかして色を元に戻すことは可能ですか?
私が使用するいくつかのコマンドは表示色ですが、それらをウォッチで使用すると色が消えます。
watch -n 1 node file.js
何とかして色を元に戻すことは可能ですか?
回答:
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
doのようなカラーコードを削除し、コマンドのちらつきを防ぎません
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
、何らかの理由でパッケージをアップグレードできない場合は、これを投入することができます。
はい
時計はカラー出力で動作します。それは、(少なくとも、Debianの中で)ここにあなたの質問のためにバグ報告しているprocpsのパッケージの一部であるhttp://bugs.debian.org/cgi-bin/bugreport.cgi?bug=129334 あなたはprocpsのを更新する必要があることを、彼らは答えて、パッケージ
例えばubuntu 11.04では、このパッケージはhttp://packages.debian.org/wheezy/procpsで動作します
tl; dr
更新プロセス
他の回答でこの問題を解決できますが、これを達成する最も簡単な方法はunbuffer
ツールを使用することです。使用するには、次のようにします。
$ watch --color 'unbuffer <your-program>'
この方法では、プログラムの制御シーケンス有効化フラグを探す必要はありません。ただし、注意点は、お使いの時計のバージョンが--color
フラグをサポートする必要があることです。
を使用して、DebianまたはUbuntuにunbufferをインストールできsudo apt-get install expect
ます。
'unbuffer <command>'
-使用する特定のコマンドを指定せずに、これが質問にどのように答えますか?
<command>
色で実行したい特定のプログラムで置き換えるのに助けが必要ですか?
時計のマニュアルから:
非印刷文字はプログラム出力から削除されます。表示したい場合は、コマンドパイプラインの一部として「cat -v」を使用します。
使い方はわかりません。
watch -c "ls --color|cat -v"
示します^[[0m^[[01;34mAgent^[[0m
。
watch --color ls --color=always .