3
# it works fine
db2 connect to <db_name> user <user> using <passwd>
while read aline
do
tab=$(echo $aline | awk -F',' '{print $1}')
col=$(echo $aline | awk -F',' '{print $2}')
max_id=$(db2 -x "select count($col) from $tab")
echo $tab $col $max_id
done < tab.ls
# it doesn't work because of lost DB connection
db2 connect to <db_name> user <user> using <passwd>
cat tab.lst | while read aline
do
tab=$(echo $aline | awk -F',' '{print $1}')
col=$(echo $aline | awk -F',' '{print $2}')
max_id=$(db2 -x "select count($col) from $tab")
echo $tab $col $max_id
done
我有两部分代码,两者只有很小的差异,第一部分按预期运行,但第二部分没有。BASH中的流水线导致与db2丢失连接
似乎管道导致丢失数据库连接。
任何人都可以解释为什么。
在此先感谢!
BTW:我在RH Linux的6.6,庆典测试
的多次调用'awk'是浪费和不必要的; 'IFS =时,读-r选项卡col other;做max_id = $(...);回声...;完成
chepner
非常感谢您!它已退出帮助! – user6379021