shell脚本中如何判断sql语句执行是否成功

各位好,我是新手,想写一个shell,里面封装了几句impala是sql语句,但是sql语句很多,我想用shell判断下,如果sql执行错误就返回一个 error,然后程序跳出!写一个这样的模板! 做以后开发用!

大体思路就是:

impala-shell -q "select * from first_on_internet where day==1 ;"

if [ 如果上买到sql语句报错(如返回 ERROR: AnalysisException:),则就打印 sql error 并且跳出shell,后面sql不执行,否则执行到最后一步打印 sql succell ]

then
echo " sql ERROR ! ERROR: AnalysisException: "
else
echo "sql success ! "
fi

sql执行完会打印被修改的条数,如果条数为0则表示失败

ERROR: AnalysisException: 的错!

脚本是这样的
[root@dmniqf]# cat test_sh.sh

#!/usr/bin/env python

-*- coding: utf-8 -*-

impala-shell -q "select * from first_on_internet where day==1 ;"

if [ "$?"= "0" ]

then
echo " sql ERROR ! ERROR: AnalysisException: "
else
echo "sql success ! "
fi

[root@dmp165 ningqf]# sh test_sh.sh
Starting Impala Shell without Kerberos authentication
Connected to dmp165:21000
Server version: impalad version 2.2.0-cdh5 RELEASE (build 2ffd73a42efd521362ffe1cfb37463f67f75c)
Query: select * from first_on_internet where day==1
ERROR: AnalysisException: Syntax error in line 1:
select * from first_on_internet where day==1 ** -- 这块是我特意写错的sq**l
^
Encountered: =
Expected: CASE, CAST, EXISTS, FALSE, IF, INTERVAL, NOT, NULL, TRUE, IDENTIFIER

CAUSED BY: Exception: Syntax error

Could not execute command: select * from first_on_internet where day==1
test_sh.sh: line 10: [: 1=: unary operator expected
sql success !

if [[ $? == 1 ]];then
echo 'sql error'
exit 1
else
echo "sql success ! "
fi

在shell上直接执行sql,执行成功返回值为0,执行失败返回值为1.当返回值为1的时候退出shell脚本即可
具体的你可以先验证一下。

如果是跳过而不是跳出,该如何写?