可生成多级菜单及菜单树形图的shell脚本.docx

可生成多级菜单及菜单树形图的shell脚本.docx

  1. 1、本文档共9页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
可生成多级菜单及菜单树形图的shell脚本

【shell脚本】通过读取文件生成多级菜单作者:大红机器脚本代码:#!/usr/bin/shEnter(){echoprintf 输入回车键继续...read -s Enterecho}Chkfile(){if [ ! -f $1 ] then echo ERR-0: 菜单文件 $1 不存在... exit 1fi}Chkinput(){if [ x$2 = xa -o x$2 = xx -o x$2 = xh -o x$2 = xb ] then return 0fiexpr $2 + 0 /dev/null 21if [ $? -ne 0 ] then return 1fiif [ $2 -le 0 -o $2 -gt `awk END{print NR} $1` ] then return 2fi}Tree(){menu=`expr $menu + 1`local i=1until [ $i -gt `awk END{print NR} $1` ]do echo $tree | awk {for(i=1;i=$menu;i++)if($i==1){printf │ }else{printf }} if [ $verbose -eq 1 ] then text=`awk -F$MENUCHAR NR==$i{if($2!~/$MENUTYPE/){print $1 $2}else{print $1}} $1` else text=`awk -F$MENUCHAR NR==$i{print $1} $1` fi if [ $i -eq `awk END{print NR} $1` ] then echo └─$text tree=`echo $tree | awk {for(i=1;i=NF;i++){if(i==($menu+1))$i=0}}END{print $0}` else echo ├─$text tree=`echo $tree | awk {for(i=1;i=NF;i++){if(i==($menu)+1)$i=1}}END{print $0}` fi run=`awk -F$MENUCHAR NR==$i{print $2} $1` if [ `echo $run | awk -F. {print $NF}` = $MENUTYPE ] then tree=$tree 1 Tree $MENUPATH/$run fi i=`expr $i + 1`donemenu=`expr $menu - 1`}Menu(){menu=`expr $menu + 1`while truedoif [ x$input = xx ] then exitficlearechoecho You can choose followed options:echoecho ────────────────────────────echoawk -F$MENUCHAR NF1{printf NR. ;if($2~/$MENUTYPE$/){printf + }else{printf * }printf $1\n\n} $1echo ────────────────────────────echoif [ $menu -gt 1 ] then echo b Back --- 返回上一级菜单 echofiecho a All --- 全部执行echo h Help --- 帮助信息echo x Exit --- 退出echoprintf Input your choice: read inputechoChkinput $1 $inputif [ $? -ne 0 ] then com=`echo $input | awk {print $1}` which $com /dev/null 21 if [ $? -ne 0 ] then echo ERR-1: 输入错误,请重新输入... else eval $input fi Enter continueficase $

文档评论(0)

hhuiws1482 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5024214302000003

1亿VIP精品文档

相关文档