試圖做的事:GNU化妝 - 確定是否stdout是終端
help:
@echo "you must $(call red_text,clean)"
其中red_text被定義爲
red_text = $(shell tput setaf 1; echo -n "$1"; tput sgr0)
這版畫「你必須清理」,其中「清潔」字樣被印在紅。
問題是什麼時候make的輸出被傳送(例如更少)。 在這種情況下,我不應該使用顏色,而是打印$ 1。
我需要更新red_text
來處理這種情況。爲此,我想我可以使用類似$(shell [ -t 1 ] ..)
的東西,但問題是stdout的$(shell)
永遠不是終端。
如何更改red
來處理標準輸出不是終端的情況?
檢查'tty'命令的退出狀態? – anishsane
@anishsane這將與檢查[-t 1] – dimba
有相同的問題在您的構建服務器中,此問題可能更容易解決:'FANCY?= 1',然後在需要非顏色輸出時調用'FANCY = 0 make' 。 – thiton