0

所以,以前我有一个从文本文件中读取的脚本(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
4

1 回答 1

0

不确定这是否会有所帮助,但这是您脚本的重演

while read
do
  echo $REPLY >> ./call_self.txt
  if (( ++counter > 9999 ))
  then
    ./call_self.sh &
    exit
  fi
done < ./pipe
于 2013-07-30T23:45:20.300 回答