shell 脚本中的 db2 查询不会 运行 shell 中的结果为空

db2 query in shell script doesn't run with empty results in shell

我在 shell 中有以下脚本。 test.sh

#! /bin/bash

connect_stat=$(db2 -x "connect to $DB_NAME USER $DB_USER using $DB_PASSWORD" )
db2 "SET SCHEMA=SCHEMA1"

while read line; 
do
a=$(db2 -x "SELECT C.id FROM table C WHERE C.col1  IN ('$line)') with ur")
echo $a
done<inputs.txt 

当我 运行 "sh test.sh"

时,我得到空结果

当我 运行 通过 putty 在 db2 中进行相同的上述查询时,我得到了结果。

我有以下 dbcon 文件。将触发 putty 中的 dbcon 文件,结果可用

/admin/.profile

db2 connect to DB_NAME USER DB_USER using DB_PASSWORD

db2 set SCHEMA=SCHEMA1

db2


db2 => SELECT C.id FROM table C WHERE C.col1  IN ('xyz-asd-asd') with ur

ID
----------------------------------------------------------------
123

  1 record(s) selected.

请帮助我在 shell 脚本中做错了什么。

提前致谢。

$(db2 -x "connect to $DB_NAME...) 在子 shell 中执行,当子 shell 退出时终止连接,所以当你到达 db2 "SELECT C.PARTNUMBER..." 时连接不存在。