有没有办法在错误发生时输出错误信息。详细说明,我想知道一个文件内容是否与另一个文件内容相等。如果没有,make
应该退出并输出错误信息。
test:
cmp --silent tmp/test.txt tmp/test_de.txt || (error DecryptFile is different from original)
当tmp/test.txt
不等于tmp/test_de.txt
时,输出为:
cmp --silent tmp/test.txt tmp/test_de.txt | (error DecryptFile is different from original)
/bin/sh: 1: error: not found
makefile:38: recipe for target 'test' failed
make: *** [test] Error 127
/ bin / sh:1:错误:未找到
结果不是我想要的。我只想要这样的错误信息:
makefile:38: *** missing separator. Stop.
答案 0 :(得分:3)
您可以使用exit
。 (
和)
可以包含多个命令:
cmp --silent tmp/test.txt tmp/test_de.txt || (echo "DecryptFile is different from original"; exit 1)
答案 1 :(得分:3)
也许error
引用GNU Make built-in error function,但您应该写$(error
.... )
而不只是(error
.... { {1}}并且你不能那样使用它(在shell命令中)。所以你真的应该使用)
和echo
作为answered by tobatamas。也许您可以将exit
重定向到 stderr (例如echo
或echo message 2>&1
)
echo message > /dev/stderr
.... $(error
内置可能(通常是)与GNU make conditionals一起使用。