如果文件不存在,是否有退出并出现错误的情况?我目前在做这样的事情:测试makefile目标文件是否存在,如果不存在则退出
all: foo
foo:
test -s /opt/local/bin/gsort || echo "GNU sort does not exist! Exiting..." && exit
运行make
运行的all
目标,它运行foo
。
期望的是,如果test -s
条件失败,那么将执行echo/exit
语句。
但是,即使存在/usr/bin/gsort
,我也会得到echo
语句的结果,但exit
命令不会运行。这与我希望完成的事情相反。
什么是正确的方式来做类似上面的事情?
如果我尝试在命令行上,具有了''||括号中,拿到1分的外壳,使得它的工作如预期的右手边。我不知道在makefile中它是否相同。如果没有括号,即使测试结果为肯定,也会执行“退出”。 – HonkyTonk