【发布时间】:2013-01-29 13:55:44
【问题描述】:
我有这个脚本,它从 SQL 查询中检索一个参数(一个数字)并将其分配给一个变量。 有两个选项 - SQL 查询找到一个值,然后脚本执行 echo "billcycle number is $v_bc",或者它没有找到一个值,它假设 回显“未找到账单周期参数”。 我的 if 条件有问题。
这是我想出的:
#!/bin/bash
v_bc=`sqlplus -s /@bscsprod <<EOF
set pagesize 0
select billcycle from bc_run
where billcycle not in (50,16)
and control_group_ind is null
and billseqno=6043;
EOF`
if [ -z "$v_bc" ]; then echo no billcycle parameter found
else echo "the billcycle parameter is $v_bc"
fi
当 billseqno=6043 时,则表示 v_bc=25,当我运行脚本时,结果为: “billcycle 参数为 25”。这就是我要做的。 当我设置 billseqno=6042 时,根据上面的 SQL 查询,v_bc 将没有任何值,因此我想要它做的是 echo "no billcycle parameter found"。 相反,我得到了
"billcycle 参数为
没有选择任何行”。
有什么建议吗?
非常感谢 阿萨夫。
【问题讨论】:
标签: sql unix null if-statement