2016-04-22 139 views
0

概述:遞歸函數

我想代碼,將繼續執行,直到值的函數等於0,如果該值大於0,我寫值成文件並打破循環。

問題:

如果在退出的情況下,該值大於0,則8倍的值被寫入到該文件中,而不是1點時的功能的功能被執行8次,然後。請幫助我解決我面臨的問題。

PFB使用的代碼,

#!/usr/bin/ksh 

    fx_Running() 
    { 
     v_line=$1 
     v_SRC_NM=$2 

     v_VAR =`echo $v_line|awk -F',' '{print $1}'` 

     v_STATUS=`wc -l $v_VAR | awk '{print $1}` 

     if [ $v_STATUS == 0 ] 
     then 
      fx_Running $v_line $v_SRC_NM 
     fi 

     if [ $v_STATUS == 1 -o $v_STATUS == 2 ] 
      then 
       ${v_line} >> ${v_COMPLETED_LIST} 
       break 
     fi 

     if [ $v_JOB_STATUS == 3 ] 
     then   
      ${v_line} >> ${v_FAILED_LIST} 
      break 
     fi 

    } 
+1

爲什麼,如果你的腳本'#在/ usr/bin中/ ksh'開始你的標題提到的bash!? –

回答

0

使用突破是不正確,使用回報代替。具體爲中斷退出循環,而返回退出功能

這裏的問題的演示:

foo(){ break ; } ; for f in `seq 10` ; do echo $f ; foo ; done 

輸出:

1