请问我如何在1)中调用2),及2)中调用3).....呢?

请问我如何在1)中调用2),及2)中调用3).....呢?

read xz
case $xz in

1) java first
..........
if ........
#要调用2)
if
;;
2) java second
.......
if ........
#要调用2)
if
;;
3) java third
..........
if ...要调用4)
if
;;
4)......
  ......
.
.
.
esac
echo 谢谢大家帮忙!!
能给我举个例子吗?      
你的逻辑好像不太适合用 case 语法      
那可不是,版主,你帮我看看怎么设计好吗?
我把我的脚本文件发给你看看
我想把1-13步都连接起来,而不必每处理一步就要选择一步
只要在出错的时候才去选择,不出错就从1到13处理完.
如果7步错,我就可以再从第7开始,输入7后,让它从7处理到13
辛苦你了:)

menumain ()
{
clear
echo ----------------------------
echo "\t 1.网点检查              "
echo "\t 2.代理业务              "
echo "\t 3.储蓄批处理            "
echo "\t 4.贷款批处理            "
echo "\t 5.拆借批处理            "
echo "\t 6.其他业务批处理        "
echo "\t 7.预记总帐              "
echo "\t 8.总帐试算              "
echo "\t 9.记总帐                "
echo "\t 10.总帐滚积数           "
echo "\t 11.中心日切             "
echo "\t 12.下工作日输入         "
echo "\t 13.生成科目总帐         "
echo "\t 0.退出                  "
echo ----------------------------
echo "\t 选 择 : \c"
echo ----------------------------
}

while [ 1 ]
do
   menumain

    read xz
    case $xz in

    1) echo "开始第一步网点检查"
        clear
        java 8800                         #运行第一个程序#
        if [ $? = 0 ] ; then              #若十处理成功,则返回值为"0",否则提示错误
        echo "\007\n处理完毕,继续下一步工作!"
        else
        echo "处理错误!请查找原因!!"
        fi
        ;;
    2) echo "代收代发批处理"
        java 8801                         #运行第二个程序#
        if [ $? = 0 ] ; then
        echo "\007\n处理完毕,继续下一步工作!"
        else
        echo "处理错误!请查找原因!!"
        fi
        ;;
    3) echo "储蓄批处理"
        java 8802                         #运行第三个程序#
        if [ $? = 0 ] ; then
        echo "\007\n处理完毕,继续下一步工作!"
        else
        echo "处理错误!请查找原因!!"
        fi
        ;;
    4) echo "贷款批处理"
      ...
      ...
      ...
   13)
        ;;
    0) clear   
        exit                               #exit脚本
        ;;
    *) echo "错误选择,请重新输入!"     #输入数字之外的字符
        ;;
        esac
done      
1) 代码太乱, 看不懂整体结构, 先整理一下吧
2) 问题太具体, 也太大, 能否抽象一下      
你的 menu 可以考虑用 select 来写      
谢谢版主的肯为我解答
又要麻烦版主多看一下,上面的脚本,你看能分析出问题吗?

这是一个批处理过程
共有13步,每次处理都要处理1-13项。
但每次只能处理一步,而且每次都要输入一次(1,2,3...13)数字

我想处理的是:
要是任何一步中都能够顺利完成--没有错误,那么就可以让它从1跑到13步,不用人工干预。
但要是其中的一步有错,那么就会提示,经过处理后,再接着从那一步开始
而不是用从第一步开始做。
如第7步有问题,那么再处理完后,接着输入7后,程序就可以从7一直处理到13步。      
第一次能否从第 2 步开始 ?
如果第 7 步失败, 经过处理后是否只允许从第 7 步开始 ?      
你说的“第一次能否从第 2 步开始 ?”
不行,第一次一定要从第一步开始。

“如果第 7 步失败, 经过处理后是否只允许从第 7 步开始 ?”
不是的,你可以手工输入数字,让它从任何一步做,
但处理过的,它会抛错(“第 6 步已经处理”)的,然后返回选择界面。

而跳过某一步它也会抛错的,如跳过 7 做 8 抛错:“第7步没有做”
实际上只能从第7步开始开始,一直处理到最后。

要是又在第 9 步中出现问题,那么就跟第 7 步出错一样处理。

在任何一步出错,都可以从那一步开始,然后处理到最后,
而不用处理前面的步骤。      
我的理解是: 只能从第一步开始, 而且, 如果第 n 步失败, 只能再从 n 开始

pseudo code:
复制内容到剪贴板
代码:
for (i = 1; i <= 20; i++)
{
  while(1)
  {
    func(i);
    if (成功) break;
    echo "press any key to try again"
    read
  }
}
      
我试了,有点不太懂。
自己技术太差了,别人也帮补了。。。。