When piping data to while loop the subshell is created and variables are lost (Closes: #706862)
Ondřej Surý
10 years ago
96 | 96 | fi |
97 | 97 | |
98 | 98 | BERKELEY_DB_FOUND= |
99 | cat $OLD_LIST | \ | |
100 | 99 | while read -r OLD_DBKEY OLD_DBVALUE ; do |
101 | 100 | NEW_DBVALUE=$(LC_ALL=C gawk "/^${OLD_DBKEY}[[:blank:]]/ { print \$2 }" $NEW_LIST) |
102 | 101 | |
179 | 178 | upgradedb $DBFILE $OLD_DBVALUE $NEW_DBVALUE |
180 | 179 | fi |
181 | 180 | fi |
182 | done | |
181 | done < $OLD_LIST | |
183 | 182 | # Create Berkeley DB checkpoint and remove old logs |
184 | 183 | if [ -n "${DO_UPGRADE_BDB}" -a -d $CONFIG_DIR/db ]; then |
185 | 184 | if [ -n "${BERKELEY_DB_FOUND}" ]; then |