shell脚本命令中的错误检测,例如“make”

时间:2011-11-30 06:46:53

标签: bash shell error-handling makefile

我想编写一个脚本来解压缩配置制作 make install 作为源码(xyz) .tar.bz2格式)。但是如果其中一个命令出错,我想停止这个脚本。是否有任何专门用于 make 命令的信号或方法来检测执行期间停止脚本的错误?

2 个答案:

答案 0 :(得分:2)

如果运行的任何命令返回非零退出代码(包括被信号杀死),则正常中止。因此,如果命令失败,您只需要确保您的脚本存在(带有错误)。此外,make self会以非零状态存在(因此您可以检测到makemake install失败)。请注意,可以告诉make在每个命令的基础上忽略错误(通过在命令前添加-),但这不是默认值。

您可以通过两种主要方式完成此操作:

  1. set -e(但要注意set -e has a lot of problems
  2. 测试每个命令是否失败(例如tar xzf foo.tar.gz || exit 1
  3. 或者,您可以按照预期的方式使用make,并编写make规则来执行所有这些步骤。

答案 1 :(得分:0)

这是真的;更简单的方法是......

tar xvf foo.tar.bz2 && make && make install