概述:
我想编写一个函数,该函数将继续执行,直到值等于 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