- 论坛徽章:
- 0
|
环境:最好是通用,适用于RedHat,HP-UX,AIX,DB2各版本。
要求实现:查询DB2数据库表的记录的某一字段,将其保存在shell变量中(也就是说实现shell脚本去获取db2 记录,并将其保存下来)
我自己尝试写了一个
if [ "X$DBTYPE" = "XORACLE" ]
then
CMD="db2 -"
db2 connect to ${DB2USERID} >/dev/null
export DB2OPTIONS='-st';
elif [ "X$DBTYPE" = "XORACLE" ]
then
CMD="sqlplus $ORAUSERID"
fi
col_value=`${CMD} <<EOF | grep 'labstr' | awk -F" " '{print $1}'
select pnode_id, 'labstr' from s_pnode_info where pnode_name='MOIA_MASTER';
EOF`
echo "===[ ${col_value} ]==="
|
这个脚本,oracle下是可用的,但在db2下打印是空,并且不解的是,如果我不把执行结果存入col_value变量中,打印的结果是对的,
也就是说直接这样写:
${CMD} <<EOF | grep 'labstr' | awk -F" " '{print $1}'
select pnode_id, 'labstr' from s_pnode_info where pnode_name='MOIA_MASTER';
EOF
|
可以打印出一个结果:2000
可以把这个结果存入文件,但是不懂为什么存入变量却是空?
请高手指点,或给出更好的通用性脚本,谢谢 |
|