通常从 shell 脚本中,我们可以检测输出是否被重定向到文件,如下所示:
if [ -t 1 ]; then echo "shell"; fi
但是,我想在生成文件中执行此操作,这意味着 AFAIK,唯一的方法是:
ifeq ($(shell if [ -t 1 ]; then echo "1"; fi),1)
## in shell
endif
但是,无论输出是否重定向到文件,这种情况似乎一直存在。我想这取决于如何$(shell...)
实施。所以我的问题是,有什么我可以测试的东西make
会让我知道输出是否被重定向到文件。
一点背景知识,我的 makefile 生成了很多有用的输出,为了让事情更明显,我使用了一些文本着色 - 在控制台上这很好,但是在 Hudson 中,当相同的构建作业运行时,输出(被重定向到文件)中包含所有控制字符......所以如果文件被重定向,我想做的是禁用 make 中的所有颜色代码。