我正在编写一个自动安装apache的脚本
在询问之前,这是公司请求,否则我会使用更简单的方法来安装apache。
现在,在apache configure / make / make install之后,我需要测试是否成功完成。
我检查了配置选项,但没有完成失败的标志
我想知道除了测试命令输出是否成功或不成功之外还有其他方法吗?
现在,我将输出保存在一个文件上,然后为预期的行进行grepping。例如,为配置创建“test / Makefile”。
感谢
答案 0 :(得分:2)
通常,在基于* nix的系统上,命令返回0表示成功和非零值 如果命令不成功。在shell中,最后一个命令的退出状态 存储在“$?”中变量。
因此,假设您运行make install并检查退出状态,如下所示:
# make install
# echo $?
如果命令成功,则echo语句将打印出0,否则 你会得到一些其他的数值。或者你可以测试内容,如果$?用“if”。
if [ $? -eq 0 ]; then {
echo "OK"
};else {
echo "Not Ok"
};fi
您也可以以不同的方式使用退出状态。以下命令行 只有前面的命令成功才会执行每个命令
./configure && make && make install && echo "All good!"
将每个COMMAND视为返回VALUE(其退出状态)的函数
&安培;&安培;是bash的AND运算符(你可能正在使用的shell。)和||是OR运算符。
您可以扩展上面的命令行以处理“make install”步骤失败的情况,例如:
./configure && make && make install && echo "All good!" || echo "Something's awry"
当然,这只是一个例子,但我认为您可以利用可以测试命令退出状态的事实来解决您的问题。