2016-04-22 56 views
0

概要:私は値まで実行し続けます機能をコーディングしたい再帰関数

が0に等しく、値が0より大きい場合、私はに値を書いていますファイルを作成し、ループを破る。

問題:

値は値ではなく1回のファイルに書き込まれ、0より大きく、8回である場合に機能を出ながら機能は、その後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

なぜあなたのタイトルの言及はbashスクリプトが '#は/ usr/binに/ ksh'で始まる場合に!? –

答えて

0

ではなくリターンを使用し、間違っています。具体的には、の改行は、ループを終了します。一方、返信は、ファンクションを終了します。

は、ここで問題のデモです:

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

出力:

1