2013-10-11 110 views
1

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

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

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

感谢测试Apache配置

回答

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!" 

思考成功

& &是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

+0

该脚本已正常工作6个月。昨天晚上,我的团队成员在一台新服务器上对它进行了测试,结果失败了。但我认为它注定要失败的其中一例。 无论如何,非常感谢你,这给我一些空间来改善它:) – radicaled