1

我正在编写一个自动安装 apache 的脚本。
在问之前,这是公司的要求,否则我会使用更简单的方法来安装 apache。

现在,在 apache configure/make/make install 之后,我需要测试是否成功完成。
我检查了配置选项,但没有成功完成的标志。
我想知道除了测试命令输出是否成功或不成功之外,是否还有其他方法?

现在,我将输出保存在一个文件中,然后寻找预期的行。例如为配置“创建测试/Makefile”。

谢谢

4

1 回答 1

2

通常,在基于 *nix 的系统上,命令返回 0 值表示成功,如果命令不成功则返回非零值。在 shell 中,最后一个命令的退出状态存储在“$?”中。多变的。

因此,假设您运行 make install 并检查退出状态,如下所示:

# make install 
# echo $?

如果命令成功,echo 语句会打印出一个 0,否则你会得到一些其他的数值。或者,如果 $? 用“如果”。

if [ $? -eq 0 ]; then { 
    echo "OK" 
};else { 
    echo "Not Ok"
};fi

您还可以以不同的方式使用退出状态。以下命令行将执行每个命令,仅当前面的命令成功时才按顺序执行

./configure && make && make install && echo "All good!"

将每个 COMMAND 视为返回 VALUE(其退出状态)的 FUNCTION

&& 是 bash 的 AND 运算符(您可能正在使用的 shell。)和 || 是 OR 运算符。

您可以扩展上述命令行来处理“make install”步骤失败的情况,例如:

./configure && make && make install && echo "All good!" || echo "Something's awry"

当然,这只是一个例子,但我认为您可以利用可以测试命令的退出状态的事实来解决您的问题。

此链接应该可以帮助您:http ://tldp.org/LDP/abs/html/exit-status.html

于 2013-10-11T14:42:40.857 回答