AIX bash 中的递归函数



概述:

我想编写一个函数,该函数将继续执行,直到值等于 0,如果值大于 0,我将值写入文件并中断循环。

问题:

如果函数执行 8 次,

则在退出函数时,如果值大于 0,则值将写入文件的 8 次而不是 1 次。请帮助我解决我面临的问题。

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
    }

使用 break 不正确,请改用 return。 具体来说,break退出循环return退出函数

下面是问题的演示:

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

输出:

1

最新更新