2013-07-30 94 views
0

因此,以前我有一個腳本從文本文件中讀取(100億* 40條記錄和一個相當寬的表)。但我注意到CentOS 5.4中的Read Builtin存在內存泄漏現在我無法升級我的操作系統,因此我想我是否可以讀取一些記錄,在當前腳本中運行相同的腳本,然後終止當前腳本。 我有一個文件「test.txt」,其中包含1-100000,每個數字一行。我想從這個文件中讀取10000個文件,直到我把這個文件中的所有內容都傳送到另一個文件「callSelf.txt」。奇怪的是,我可以將所有內容都記錄到90000條記錄中,但在此之後,腳本停止並且不會完成剩餘的10000條記錄。 注意:我正在使用命名管道進行此過程。bash腳本spwans本身並退出

有沒有人知道這裏發生了什麼? 在此先感謝。

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

不知道這是否會幫助,但,這是你的腳本的重奏

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