- 论坛徽章:
- 0
|
用shell简单包装了一下db2的命令,主要是为了捕捉错误跳出,因为shell上一行报错,下一行还照样执行,函数如下
exdb2() {
if [ $# -eq 1 ]
then
sqlBuff="$1"
tip=""
elif [ $# -eq 2 ]
then
sqlBuff="$2"
tip="$1"
else
echo "PARAMETER NUMBER ERROR!!!"
# exit -1
fi
db2 ${tip} "${sqlBuff}"
if [ $? -ne 0 ]
then
echo ">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Sql Error <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<"
echo "${sqlBuff}"
# exit -1
fi
} |
主要是判断 db2 ${tip} "${sqlBuff}" 有没有语法错误,单独执行是没问题的
[db2inst1@domain~]$ exdb2 "select count(*),'NUM' from syscat.tables where tabname='TEST'"
1 2
----------- ---
1 NUM
1 record(s) selected.
[db2inst1@domain~]$
但我想把结果做筛选,传给grep就有问题了
[db2inst1@domain~]$ exdb2 "select count(*),'NUM' from syscat.tables where tabname='TEST'" | grep NUM
select count(*),'NUM' from syscat.tables where tabname='TEST'
[db2inst1@domain~]$
照理说应该输出
1 NUM
才对嘛,大家帮我看看问题在哪里 |
|