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