2016-04-22 234 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