У меня есть текстовый файл с двумя столбцами и количеством данных n. Я запускаю один сценарий оболочки, который выбирает данные из файла и входной переменной, определенной в сценарии оболочки.
Мои данные располагаются следующим образом
HX_EXT TX_EXT HX_GAMER TX_GAMER HX_SALE TX_SALE HX_PERF TX_PERF HX_ACCESS TX_ ... ... и т. д. **
Ниже сценария оболочки извлекаются данные из входного файла с определенной переменной ..
#!/bin/bash
set -x
FILE_PATH=/home/db2git1
INP_FILE=$FILE_PATH/FINAL_FILE.OUT
db2 connect to GIT1;
db2 -x "SELECT substr(SCHEMANAME, 1, 50) FROM SYSCAT.SCHEMATA where SCHEMANAME LIKE 'HX_%'" > SOURECSCHEMA.OUT
cp SOURECSCHEMA.OUT DESTINATIONSCHEMA.OUT
sed -i 's/IM1_/DMI_/g' DESTINATIONSCHEMA.OUT
paste SOURECSCHEMA.OUT DESTINATIONSCHEMA.OUT > FINAL_FILE.OUT
chmod +x SCHEMA_MIMMIC.sh
chmod +x DESTINATIONSCHEMA.OUT
chmod +x SOURECSCHEMA.OUT
while IFS= read -r line
do
VAR1=$(echo "$INP_FILE"|cut -f 1 -d '|')
VAR2=$(echo "$INP_FILE"|cut -f 2 -d '|')
done
db2 "CALL SYSPROC.ADMIN_COPY_SCHEMA("$VAR1","$VAR2",'COPY',NULL,'','','ERRORSCHEMA','ERRORTAB')"
~
Но это заканчивается приведенной ниже ошибкой (в частности, не выводится, пока не нажмете ввод).
+ cp SOURECSCHEMA.OUT DESTINATIONSCHEMA.OUT
+ sed -i s/IM1_/DMI_/g DESTINATIONSCHEMA.OUT
+ paste SOURECSCHEMA.OUT DESTINATIONSCHEMA.OUT
+ chmod +x SCHEMA_MIMMIC.sh
+ chmod +x DESTINATIONSCHEMA.OUT
+ chmod +x SOURECSCHEMA.OUT
+ IFS=
+ read -r line
++ echo /home/db2git1/FINAL_FILE.OUT
++ cut -f 1 -d '|'
+ VAR1=/home/db2git1/FINAL_FILE.OUT
++ echo /home/db2git1/FINAL_FILE.OUT
++ cut -f 2 -d '|'
+ VAR2=/home/db2git1/FINAL_FILE.OUT
+ IFS=
+ read -r line
++ echo /home/db2git1/FINAL_FILE.OUT
++ cut -f 1 -d '|'
+ VAR1=/home/db2git1/FINAL_FILE.OUT
++ echo /home/db2git1/FINAL_FILE.OUT
++ cut -f 2 -d '|'
+ VAR2=/home/db2git1/FINAL_FILE.OUT
+ IFS=
+ read -r line
Режим отладки не выдает никакой ошибки и застревает на выходе, как вставлено выше.
Как исправить эту ошибку?