Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 在脚本中使用FOR循环和here文档时出现奇怪的问题_Linux_Shell_Ksh - Fatal编程技术网

Linux 在脚本中使用FOR循环和here文档时出现奇怪的问题

Linux 在脚本中使用FOR循环和here文档时出现奇怪的问题,linux,shell,ksh,Linux,Shell,Ksh,在下面的脚本中,输出文件缺少头记录。 输出中也缺少PTF_列表中的某些数据 如果使用PTF_列表中的一个值运行,则使用相同的脚本 e、 g PTF_LIST=“LIST1”生成标题记录和输出中列表的数据 当使用PTT_列表的多个值运行脚本时,例如PTF_LIST=“LIST1 LIST2 LIST3”不会产生所需的输出。头记录缺失,一些列表值的数据不会随机出现在输出文件中 一次只运行一个脚本实例 #!/bin/ksh OUTPUT_FILE=report_output.csv WRKFILE

在下面的脚本中,输出文件缺少头记录。
输出中也缺少PTF_列表中的某些数据

如果使用PTF_列表中的一个值运行,则使用相同的脚本 e、 g PTF_LIST=“LIST1”生成标题记录和输出中列表的数据

当使用PTT_列表的多个值运行脚本时,例如PTF_LIST=“LIST1 LIST2 LIST3”不会产生所需的输出。
头记录缺失,一些列表值的数据不会随机出现在输出文件中

一次只运行一个脚本实例

#!/bin/ksh

OUTPUT_FILE=report_output.csv

WRKFILE=temp_ouput.tmp


# Header record.
print "column1, column2, column3" > ${OUTPUT_FILE}

PTF_LIST="LIST1 LIST2 LIST3 LIST4 LIST5 LIST6 LIST7" 

for PTF_NO in $PTF_LIST
do

/usr/bin/isql -b -s',' -U$USER -P$USERPWD <<-EOT | sed -e 's/ *,/,/g' >${WRKFILE} 2>&1

use aaamaindb
go
set nocount on
set dateformat ymd
go

exec some_function @port_object='${PTF_NO}'
go  
EOT

awk -F',' '{ if ( $5 == "YES" ) { print $1","$2","$3","$8","$9","$10","$11","$12","$13}}'  < ${WRKFILE} >> ${OUTPUT_FILE}

done #End of for loop
#/bin/ksh
输出文件=报告输出.csv
WRKFILE=temp\u output.tmp
#标题记录。
打印“column1,column2,column3”>${OUTPUT_FILE}
PTF_LIST=“LIST1 LIST2 LIST3 LIST4 LIST5 LIST6 LIST7”
对于$PTF_列表中的PTF_编号
做
/usr/bin/isql-b-s','-U$USER-P$USERPWD&1
使用aaamaindb
去
不计较
设置日期格式ymd
去
exec some_function@port_object='${PTF_NO}'
去
EOT
awk-F'、“{if($5==”YES”){print$1'、“$2”、“$3”、“$8”、“$9”、“$10”、“$11”、“$12”、“$13}}”<${WRKFILE}>${OUTPUT\u FILE}
完成#for循环结束

感谢您的评论和回答。

很好,您在问题中显示了您的代码。始终建议添加输入和预期输出的示例,以便更好地理解问题,因此请添加相同的示例,然后让我们知道。我不明白为什么标题记录不会显示,无论分配给
PTF_LIST
的是什么,除非从
复制了一些不需要的控制字符${WKRFILE}
${OUTPUT_FILE}
;您是否查看了(每个)
${WRKFILE}
(例如,
od-c${WRKFILE}
)的内容中是否有任何不需要的控制字符?您是否看到带有
tr-d'\r'report_OUTPUT.csv
的数据?