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와의 연결이 끊어지기 때문에
파이프 라인으로 인해 DB 연결이 끊어지는 것 같습니다.
이유를 설명 할 수 있습니까?
미리 감사드립니다.
가 BTW : 나는 RH 리눅스 6.6, bash는 테스트
다중 호출; 'IFS =, read -r tab col 기타; do max_id = $ (...); 에코 ...; 완료
chepner
정말 고마워! 도움이 안돼! – user6379021