- 论坛徽章:
- 0
|
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 "通用菜单" |
|