Bash脚本,如果C ++返回一些东西

时间:2014-11-25 19:51:13

标签: c++ bash debian

我有一个自定义C ++应用程序,如果一切正常则返回0,如果出现问题则返回printf(...)。

我还有一个bash脚本(以cronjob身份运行),需要检查C ++应用程序的执行情况。

我怎样才能进行重击:

if ./run_app; then
else
fi

检查它是否返回0或其他文本?

if ./run_app = 0; then

不起作用。

更新:

当一切顺利时,我在C ++中的实际代码看起来像这样:

int main(int argc, char **argv)
{
    ...
    return 0;
}

3 个答案:

答案 0 :(得分:3)

你也可以这样做:

./run_app
if [ $? -eq 0 ]; then

as $?捕获最后一个程序的返回值。

答案 1 :(得分:2)

使用测试(1)。

e.g。

result=$(my_application)
backup=$?

[ -z "$result" ] && echo "my_application printed nothing"
[ $backup -eq 0 ] && echo "my_application returned zero"

答案 2 :(得分:1)

如果应用程序在成功时返回0而在失败时返回非0,那么

的第一种形式
if ./run_app; then
else
fi

会工作。