通常、シェル スクリプトから、次の行に沿って、出力がファイルにリダイレクトされているかどうかを検出できます。
if [ -t 1 ]; then echo "shell"; fi
しかし、私はメイクファイルの中でこれをやりたいと思っています。つまり、知る限り、それを行う唯一の方法は次のとおりです。
ifeq ($(shell if [ -t 1 ]; then echo "1"; fi),1)
## in shell
endif
ただし、出力がファイルにリダイレクトされるかどうかに関係なく、これは常に当てはまるようです。私はそれがどのよう$(shell...)
に実装されるかにかかっていると思います。私の質問は、make
出力がファイルにリダイレクトされているかどうかを知るためにテストできるものはありますか?
少し背景を説明すると、私のメイクファイルは多くの有用な出力を生成します。物事をもう少し明確にするために、テキストの色付けを使用します。コンソールではこれで問題ありませんが、Hudson で同じビルド ジョブを実行すると、出力 (リダイレクトされます)ファイルへの)にはすべての制御文字が含まれています...だから、ファイルがリダイレクトされた場合、makeのすべてのカラーコードを無効にしたいのです。