所以,之前我有一个从文本文件中读取的脚本(100亿* 40条记录,表格相当宽)。但我注意到我的CentOS 5.4中的Read Builtin存在内存泄漏 现在我无法升级我的操作系统,所以我想如果我能读取一些记录,在我当前的脚本中运行相同的脚本然后终止当前的脚本。 我有一个文件“test.txt”,其中包含1-100000,每个数字一行。我想从这个文件10000读取一次,直到我将此文件中的所有内容传输到另一个文件“callSelf.txt”。奇怪的是,我可以将所有内容一直提供给90000条记录,但之后脚本就会停止并且不会完成剩下的10000行。 注意:我正在为此过程使用命名管道。
有谁知道这里发生了什么? 提前谢谢。
PIPE="./pipe"
callSelf="./callSelf.txt"
counter=1
limit=9999
echo $$
while read LINE
do
if [ $counter -gt $limit ]; then
echo "$LINE" >> $callSelf
./callSelf.sh &
exit 0
fi
((counter++))
echo "$LINE" >> $callSelf
done <$PIPE
答案 0 :(得分:0)
不确定这是否会有所帮助,但这是您的脚本的重复
while read
do
echo $REPLY >> ./call_self.txt
if (( ++counter > 9999 ))
then
./call_self.sh &
exit
fi
done < ./pipe