我有一个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
答案 0 :(得分:0)
blablabla
中的某些内容正在从标准输入读取,可能是为了查看它是在终端上还是类似的东西。确保您在其中运行的所有外部进程都已从/dev/null
重定向其stdin。
您当然可以通过评论blablabla
的部分并查看行为何时发生变化来弄清楚这是做什么的。