交互式 shell 脚本 - 递归太深

Interactive shell script - Recursion too deep

我正在 KSH 中制作交互式 shell 脚本,但不断出现 'recursion too deep' 错误。它的发生没有明显的模式,除了我使用脚本的时间越长,它发生的可能性就越大。

我之前被告知这是因为我没有通过循环构建我的菜单系统,但我现在已经使用 'select' 完成了这个。这是我的菜单:

clear

echo "\nDatabase:${HBDB} ClaimId:${CLAIM}  TxId:${TRANS}  SubsidyId:${SUBS}"
echo "Select your option"
PS3="Option?"

select opt in \
"Input new subsidy row" \
"Change transaction and subsidy id" \
"Change subsidy id only" \
"Show subsidy row details" \
"Exit"

do
    case $opt in
            "Input new subsidy row")

            followUp=$SUPPATH/menuSelect.sh

            echo 'Dropping temp table...mcc_ac_tmp_hb9880_${CLAIM}_${TRANS}_${SUBS} ' >> $OUTFILE1

            sql $HBDB <<_END_ | sed -n '/DROP/,$p' >> $OUTFILE1

            set autocommit on;
            \p\g
            set lockmode session where readlock = nolock;
            \p\g

            DROP TABLE mcc_ac_tmp_hb9880_${CLAIM}_${TRANS}_${SUBS}; 

            \p\g

_END_
            . $paramSet
            break
            ;;

            "Change transaction and subsidy id")
            followUp=$SUPPATH/menuSelect.sh

            . $transChange

            break
            ;;


            "Change subsidy id only")

            followUp=$SUPPATH/menuSelect.sh

            . $subsChange
            break
            ;;


            "Show subsidy row details")
            echo "Retrieving details..."
            followUp=$SUPPATH/menu1.sh

            sql $HBDB <<_END_ | grep '|'  

            set autocommit on;
            \p\g
            set lockmode session where readlock = nolock;
            \p\g

            select claim_id,rent_trans_id,rent_subsidy_id,from_date,pay_amt
            from hbrentsubsidy
            where claim_id=${CLAIM}
            and rent_trans_id=${TRANS}
            \p\g
_END_
            read
            break
            ;;


            "Exit")
            exit 
            ;;


            *) 
            echo "ERROR: Invalid selection"
            ;;
            esac
        done


. $followUp

每次选择一个选项时,都会调用一个函数,循环会中断,脚本会继续执行后续操作,例如选择另一个菜单 运行。

如果您想要整个脚本的更多内容,请告诉我

谢谢

问题解决了!看来我可以获取文件的次数确实有限制 - 我认为是文件操作员限制。我通过在开始时获取每个文件一次,将每个文件的内容放入一个函数,然后调用函数名称而不是重复获取文件来解决这个问题。