该命令$ make all会产生错误,rm: cannot remove '.lambda': No such file or directory因此它会停止.我希望它忽略rm-not-found-errors.我怎么强迫?
Makefile文件
all:
make clean
make .lambda
make .lambda_t
make .activity
make .activity_t_lambda
clean:
rm .lambda .lambda_t .activity .activity_t_lambda
.lambda:
awk '{printf "%.4f \n", log(2)/log(2.71828183)/$$1}' t_year > .lambda
.lambda_t:
paste .lambda t_year > .lambda_t
.activity:
awk '{printf "%.4f \n", $$1*2.71828183^(-$$1*$$2)}' .lambda_t > .activity
.activity_t_lambda:
paste .activity t_year .lambda | sed -e 's@\t@\t\&\t@g' -e 's@$$@\t\\\\@g' | tee > .activity_t_lambda > ../RESULTS/currentActivity.tex
Run Code Online (Sandbox Code Playgroud)
Eli*_*sky 231
试试-i旗帜(或--ignore-errors).通过以下方式,文档似乎提出了一种更强大的方法来实现这一目标:
要忽略命令行中的错误
-,请在行的文本的开头(在初始选项卡之后)写入a .-在将命令传递给shell执行之前,会将其丢弃.例如,
Run Code Online (Sandbox Code Playgroud)clean: -rm -f *.o
rm即使无法删除文件,这也会导致继续.
所有示例都包含rm但适用于您需要忽略(ie mkdir)错误的任何其他命令.
T.E*_*.D. 31
make -k(或者--keep-going在gnumake上)我会这么做你要求的.
你真的应该找到失败的del或rm行并添加一个-f以防止错误发生在其他人身上.
Bri*_*ton 19
改变干净
rm -f .lambda .lambda_t .activity .activity_t_lambda
Run Code Online (Sandbox Code Playgroud)
即不要提示删除; 如果文件不存在,请不要抱怨.
Bry*_*nta 12
通过rm使用true命令阻止管道后面的返回码成功返回,该命令始终返回0(成功)
rm file | true
Run Code Online (Sandbox Code Playgroud)
Rio*_*iot 11
要使make实际上忽略单行上的错误,您可以简单地将其后缀为; true,将返回值设置为0.例如:
rm .lambda .lambda_t .activity .activity_t_lambda 2>/dev/null; true
Run Code Online (Sandbox Code Playgroud)
这会将stderr输出重定向为null,并遵循带有true的命令(它总是返回0,导致make认为命令成功,而不管实际发生了什么),允许程序流继续.