ls
コマンド自体の API を使用せずに、などの特定のコマンドの色をオフにすることは可能ですか? を実行するようなコマンドの色をオフにする環境変数のようなものはありますかCOLOR=off ls
? 解決策があれば、ぜひ教えてください。
編集:すべてのコマンドに適用できる一般的な解決策が欲しいです。COLOR=off command_name
答え1
書式の変更を許可しても構わないのであれば、そのままパイプで処理するほうがよいでしょう。cat
ls | cat
色はありませんが、各エントリごとに改行があります。
編集:
シェル設定で色をオフにする
シェルの rc ファイルをチェックして色が設定されている場所を確認し、.<shell>rc_mono
これらの設定が削除された新しいファイルを作成し、それをソースして完了します。例: bash の場合:
$cat ~/.bashrc_mono
export TERM=xterm-mono
. ~/.bashrc
alias ls='ls --color=none'
alias grep='grep --color=none'
. ~/.bashrc
と の新しいエイリアスの前に を付ける必要があるls
ことに注意してください。grep
これらの色は通常 で設定されます~/.bashrc
。したがって、必要なのは
. ~/bashrc_mono ; ls
したがって、「色をやり直す」-rc が便利かもしれません:
$cat ~/.bashrc_recolorize
export TERM=xterm-256color
. ~/.bashrc
例えば、使用すれhtop
ば違いが分かります。
答え2
TERM
1 つのオプションは、色をサポートしない端末タイプに変数を設定することです。
例:
TERM=dumb ls
TERM=dumb command_name
echo foo | TERM=dumb grep --color o
プログラムにダム端末を使用するように指示すると、実行するコマンドによっては、vi
カーソル キーが認識されなくなるなど、他の (望ましくない) 影響が出る可能性もあります。
提案されたようにフェリックスJNを試すこともできますTERM=xterm-mono
が、私のテスト システム (Windows 上の Git bash) では、 とは対照的に色が抑制されませんTERM=dumb
。