【发布时间】:2014-03-30 18:01:03
【问题描述】:
我正在运行一个 shell 脚本,它从文件中读取一些列并将其写入 csv 文件。就像从两个文件中汇编的记录一样。
#!/bin/ksh
while read -r a1 a2 a3 && read -r b1 b2 b3 <&3; do
echo $a2 $a3 $b1 $b2
done <account_info.csv 3<Error.csv > output.csv
echo "extraction is done"
现在在 output.csv 文件中编译完成后,我想在屏幕上打印消息“提取完成”。但是消息却打印在文件 output.csv 中。 ">" 运算符的输出的这种行为是否有任何原因。 请帮助将输出消息发送到屏幕。
【问题讨论】:
-
没有理由将消息提取完成写入文件。这是你的完整脚本吗?
-
你是如何运行脚本的。像这样 ?
./script.sh > output.csv -
test.ksh 是我正在运行的脚本的名称。我创建了一个 .ksh 文件并在腻子中运行它。它正在发生,我感到无助。
-
您知道您正在从标准输入读取 a1、a2 和 a3 以及从 Error.csv 读取“b”值,对吗?使用“ksh”,您应该能够使用“read -u3”并避免重定向,并清楚地表明您知道自己在做什么。无论如何,看起来你已经重定向了脚本的标准输出,所以要么不要这样做,要么将 echo 重定向到 /dev/tty。
标签: shell unix csv while-loop echo