我有一个自定义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;
}
答案 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
会工作。