出力が端末に送られるときに動作を変更するコマンド(たとえば、色付きの出力を生成する)がある場合、変更された動作を維持しながら、その出力をパイプラインでリダイレクトするにはどうすればよいですか?そのためのユーティリティが必要ですが、私は気づいていません。
grep --color =always
などの一部のコマンド 、動作を強制するオプションフラグがありますが、問題は、出力ファイル記述子のテストのみに依存するプログラムを回避する方法です。
重要な場合、私のシェルは bash
です Linuxの場合。
承認された回答:
unbuffer
を使用すると、必要なものを入手できる場合があります 。
unbuffer
tcl
です /期待するコード> 脚本。必要に応じてソースを確認してください。また、男性の警告セクションにも注意してください。
また、次のようなエイリアスは実行されないことに注意してください。
alias ls='ls --color=auto'
StéphaneChazelasが指摘したようにトリックを追加しない限り:
alias unbuffer ='unbuffer'
を実行する場合 (末尾のスペースに注意してください)、 unbuffer
の後にエイリアスが展開されます 。