Chinaunix

标题: 通用的菜单程序(shell编写)请大家给个意见! [打印本页]

作者: atgfgd    时间: 2004-04-14 17:57
标题: 通用的菜单程序(shell编写)请大家给个意见!
menu是shell写成的shell函数,
用法:menu 菜单名 菜单选项 菜单主名称
菜单选项为0时显示该菜单名的菜单
菜单名主名称为菜单的主标题
menu.txt是菜单配置文件,配置说明如下:
菜单名|菜单项代码|行|列|菜单名称|菜单程序
菜单名为menu调用的菜单名
菜单项代码为选择的代码
行、列为在指定行列显示菜单
菜单名称为显示的菜单项汉字
菜单程序为该菜单项要调用的程序
菜单程序可以再调用menu形成下级菜单
例:menu.txt
main|1|12|10|看文件test|more test
main|2|12|50|看文件test2|more test2
main|3|13|10|二级菜单|menu mmmm 0 "二级菜单"
mmmm|1|10,10|编辑文件|vi test
程序如下:
menu()
{
        browfile=$HOME/tmp/brow$RANDOM.$SECONDS
        rm -f $browfile 1>/dev/null 2>&1
        clear
        [ $2 = "q" ] && return
        awk ' BEGIN { FS = "|"
                if ( "'$2'" == "0" )
                        printf("\033[4;20H%s","'$3'"
                        }
                {
                        if ( "'$2'" == "0" )
                        {
                                if ( $1 == "'$1'" )
                                        printf("\033[%s;%sH%s ---- %s",$3,$4,$2,$5)
                        }
                        else
                        {
                                if ( $1 == "'$1'" && $2 == "'$2'" )
                                        printf("%s",$6) >"'$browfile'"
                        }
                }
                END {
                        if ( "'$2'" == "0" )
                                printf( "\033[20;20H请选择\(q - 返回\):  " )
                } ' "./menu.txt"
        [ -f $browfile ] &&
        {
                a=`cat $browfile`
                $a
                rm $browfile 1>/dev/null 2>&1
        }
        [ $2 = "0" ] || return
        if [ $2 = "0" ]
        then
                read xz
                [ $xz ] || xz="0"
                [ $xz = "q" ] && return
                [ $xz = "0" ] ||
                        {
                                menu $1 $xz $3
                        }
        fi
        menu $1 0 $3
        return
}

menu main 0 "通用菜单"
作者: geekchi    时间: 2004-04-14 22:59
标题: 通用的菜单程序(shell编写)请大家给个意见!
先收下,试试。
作者: hygs    时间: 2004-04-14 23:31
标题: 通用的菜单程序(shell编写)请大家给个意见!
我SHELL新手,试了一下好象不行呀?我想肯定是我的操作有误!

atgfgd 及各位大虾:

menu.txt说明与用法能否详细具体一点呢... ...?

谢了!!!
作者: abist    时间: 2004-04-16 20:35
标题: 通用的菜单程序(shell编写)请大家给个意见!
好像没用
作者: bjgirl    时间: 2004-04-16 20:44
标题: 通用的菜单程序(shell编写)请大家给个意见!
[quote]原帖由 "abist"]好像没用[/quote 发表:

好像没大用
作者: atgfgd    时间: 2004-04-17 13:46
标题: 通用的菜单程序(shell编写)请大家给个意见!
abist、bjgirl
你们试过吗?
作者: atgfgd    时间: 2004-04-27 19:19
标题: 通用的菜单程序(shell编写)请大家给个意见!
大家给个意见如何?
作者: abist    时间: 2004-08-07 01:52
标题: 通用的菜单程序(shell编写)请大家给个意见!
试了一下,当用二级菜单时,如 menu mmmm 0 "标题" 运行出错,如把"标题"去掉,则可以支运行,楼主想法解决一下,如做成光带菜单就好了
作者: abist    时间: 2004-08-07 01:57
标题: 通用的菜单程序(shell编写)请大家给个意见!
精神可嘉,鼓励原创!




欢迎光临 Chinaunix (http://bbs.chinaunix.net/) Powered by Discuz! X3.2