我有一个带有两列的文本文件,数据数量为'n'。我正在运行一个Shell脚本,该脚本从Shell脚本中定义的文件和输入变量中获取数据。
我的数据安排如下
HX_EXT TX_EXTHX_GAMER TX_GAMERHX_SALE TX_SALEHX_PERF TX_PERFHX_ACCESS TX_ACCESS... ...依此类推**
以下Shell脚本从定义了变量的输入文件中获取数据。
#!/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')"
〜
但是它以以下错误结尾(特别是在按Enter之前没有输出)。>>
+ 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
调试模式不会引发任何错误,并且如上所述粘贴在输出上。
如何解决此错误?
我有一个带有两列的文本文件,数据数量为'n'。我正在运行一个Shell脚本,该脚本从Shell脚本中定义的文件和输入变量中获取数据。我的数据排列为...
我想您错过了将文件名传递到while循环的错。另外,当您尝试读取VAR1和VAR2时,我认为echo