Shell脚本:读取行错误

时间:2012-11-02 00:07:03

标签: shell

我有一个shell脚本,它读取来自文件“input_file”的行有很多行,frist几行如下:

04fcgFs-mjA
0DZ7DbdeOeE
0yvHWyvexZA
1IAhDGYlpqY
1Vajuce8nyU
1Y_wJR1I-9s
2dn-ULkQl5M
2GmVajkqLNU
2X85PdfQqnM
37LAPz7pnQI

在剧本中,我有:

while read line
do
blabla .....
done< input_file

非常有趣的是,当脚本读取偶数行时,如第二个,第四个,第六个,第一个字符将丢失。例如,当它读取第二行时,获取的字符串为DZ7DbdeOeE,而不是0DZ7DbdeOeE

我试着只写一个简单的脚本:

while read line
do
echo $line
done< input_file 

然后它可以正确读取0DZ7DbdeOeE

由于我的shell脚本很长,我不在这里发布,但我认为内部代码与“input_file”无关。顺便说一下,有一些像

这样的块
if [condition]
  continue
fi

所以我只想知道这种气孔的潜在原因是什么?太奇怪了!

我已在此链接中发布了脚本内容: http://goo.gl/Iwory

1 个答案:

答案 0 :(得分:0)

blablabla中的某些内容正在从标准输入读取,可能是为了查看它是在终端上还是类似的东西。确保您在其中运行的所有外部进程都已从/dev/null重定向其stdin。

您当然可以通过评论blablabla的部分并查看行为何时发生变化来弄清楚这是做什么的。