AIX 中的递归函数 bash

Recursive function in AIX bash

概览:

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

问题:

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

PFB 使用的代码,

#!/usr/bin/ksh

    fx_Running()
    {
        v_line=
        v_SRC_NM=

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

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

        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