字符串比较不适用于 sqlplus 输出

字符串比较不适用于 sqlplus 输出

代码:

iIMSI=`sqlplus -s ${APP_ORA_USER}/${APP_ORA_PASS}@${APP_DB_INST} << EOF
SET HEAD OFF PAGESIZE 0 LINESIZE 1000 TRIMOUT ON TIMING OFF
select resource_value from agd1_resources where resource_type='3'
and subscriber_id in (select subscriber_id from agd1_resources where resource_value='$sSUBSCRIBER');
exit;
EOF`

if [ "$iIMSI" = "no rows selected" ]; then
echo hello
else echo elseblock
fi

问题:

我给出的sSUBSCRIBER值不存在于表中,因此查询结果是“未选择行”,我将其存储在 iIMSI 中。

为什么是我的如果条件不起作用(它总是运行 else 块)?

答案1

要检查变量中是否有预期值,请echo "$iIMSI"在 if 语句上方的行中插入一个 。

我尝试了以下脚本

$ cat test.sh
#!/bin/bash

iIMSI="no rows selected"
if [ "$iIMSI" = "no rows selected" ]; then
echo hello
else echo elseblock
fi

它按预期工作。

$ ./test.sh 
hello

相关内容