有条件地做远端清洁



作为 bash 脚本的一部分,它有set -e,如果我在调用脚本之前运行了 distclean,我确实make distclean显然会失败并出现以下错误:

make: *** No rule to make target 'distclean'. Stop

有没有办法做到 distclean 并且如果没有什么可清洁的,就不会失败?

如果您对打印的错误消息感到满意,并且只想忽略失败并继续前进,那么一个常见的成语是附加|| :

这里的一般语法是cmd1 || cmd2。如果cmd1失败,则运行cmd2:是始终成功的命令的(不寻常)名称,因此|| :具有忽略第一个命令的退出代码的效果。

make distclean || :

如果您根本不希望看到错误消息,您可以先检查Makefile是否存在:

if [[ -e Makefile ]]; then make distclean; fi

你可以做一个

make distclean || echo "(Error from make ignored)"

以明确正在发生的事情。

最新更新