bash脚本自行生成并退出

时间:2013-07-30 23:29:03

标签: bash shell

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

1 个答案:

答案 0 :(得分:0)

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

while read
do
  echo $REPLY >> ./call_self.txt
  if (( ++counter > 9999 ))
  then
    ./call_self.sh &
    exit
  fi
done < ./pipe