我有一个编译程序的脚本。该程序首先使用命令编译源代码configure && make
,然后使用make test
.该脚本还用于set -e
捕获错误。
现在,我想做的是保持脚本中的设置,并在遇到一些错误set -e
时仍然继续运行脚本。make test
我曾尝试使用make -k test
即使遇到错误也可以运行测试,但它被命令捕获set -e
并停止。
我还知道哪些测试会失败,所以有什么方法可以告诉脚本跳过捕获这些错误。
答案1
make test || true
例如
#!/bin/sh
set -e
echo hello
make test || true
echo done
将会导致
hello
make: *** No rule to make target `test'. Stop.
done
在本例中,失败是由于缺少规则(没有 Makefile:-)),但我们可以看到脚本仍在继续。
答案2
set -e
可以用 翻转set +e
。
#!/bin/sh
set -e
configure && make
set +e
make test
...