免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 2267 | 回复: 8
打印 上一主题 下一主题

[其他] 在一个MENU中如何做到按0和 “空格”和“回车”都可以退出? [复制链接]

论坛徽章:
4
每日论坛发贴之星
日期:2015-12-02 06:20:00程序设计版块每日发帖之星
日期:2015-12-12 06:20:00程序设计版块每日发帖之星
日期:2015-12-15 06:20:00程序设计版块每日发帖之星
日期:2015-12-19 06:20:00
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2015-09-22 19:04 |只看该作者 |倒序浏览
#!/bin/bash


#export mypath=/usr3/tmp

echo " ... "
echo " ... "
echo " ... "
sleep 2

while :
do
cat << Menu



    xxxx........................... 1
    xxxx ................................ 2
    xxxx ........................ 3
    xxxx................................. 4
    Exit ............................................... 0


省略。。。。。。。。。。。。

  ;;       
       
*)
  
esac
done

---------------------------

这是别人写的一段SHELL,但在执行后一定要输入 “0” 才能退出,如何做到按0和 “空格”和“回车”都可以退出?

论坛徽章:
16
CU十二周年纪念徽章
日期:2013-10-24 15:41:3415-16赛季CBA联赛之广东
日期:2015-12-23 21:21:55青铜圣斗士
日期:2015-12-05 10:35:30黄金圣斗士
日期:2015-11-26 20:42:16神斗士
日期:2015-11-19 12:47:50每日论坛发贴之星
日期:2015-11-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-18 06:20:002015亚冠之城南
日期:2015-11-10 19:10:492015亚冠之萨济拖拉机
日期:2015-10-28 18:47:282015亚冠之柏太阳神
日期:2015-08-30 17:21:492015亚冠之山东鲁能
日期:2015-07-07 18:48:39摩羯座
日期:2014-08-29 23:01:42
2 [报告]
发表于 2015-09-22 19:32 |只看该作者
能把代码贴全吗  
感觉看不出来啥啊

论坛徽章:
4
每日论坛发贴之星
日期:2015-12-02 06:20:00程序设计版块每日发帖之星
日期:2015-12-12 06:20:00程序设计版块每日发帖之星
日期:2015-12-15 06:20:00程序设计版块每日发帖之星
日期:2015-12-19 06:20:00
3 [报告]
发表于 2015-09-22 20:07 |只看该作者
本帖最后由 johnson0418 于 2015-09-22 20:17 编辑

回复 2# tc1989tc


加了好友,都不能给你发消息呀?

#!/bin/bash
# By coastfish  

#export mypath=/usr3/tmp

echo "ooo Reading string-file /DHS3bin/oneshot/mtcl/objects.US0 ... "
echo "ooo Reading string-file /DHS3bin/oneshot/mtcl/spadmin.dct ... "
echo "ooo Reading string-file /DHS3bin/oneshot/mtcl/err2lov.dct ... "
sleep 2

while :
do
cat << Menu



    Display current counters ........................... 1
    Display active file ................................ 2
    Check active file coherency ........................ 3
    Install a new file ................................. 4
    Read the system CPUID .............................. 5
    CPU-Ids management ................................. 6
    Display active and new file ........................ 7
    Display OPS limits ................................. 8
    Display ACK code ................................... 9
    Exit ............................................... 0
Menu
echo -e -n "               Choice : "
read choice
case $choice in

## Display current counters
1)
  sleep 1
  cd /etc/spad
        LESS="-P h/Help q/Quit, Lines %lt-%lb/%L ?eEnd Of File%p\%)";
        export LESS;
        less -~ -f -c -e -r no1
        ;;

## Display active file        
2)
  sleep 1
  cd /etc/spad
        LESS="-P h/Help q/Quit, Lines %lt-%lb/%L ?eEnd Of File%p\%)";
        export LESS;
        less -~ -f -c -e -r no2
        ;;

## Check active file coherency       
3)
  echo "    "
        echo "> Checking active file /DHS3data/mao/software.mao"
        echo "    "
        sleep 5
        cd /usr3/mao
        if [[ -e "/usr3/mao/software.mao" && -s "/usr3/mao/software.mao" ]] > /dev/null 2>&1
        then
                echo "  File OK  "
        else
          echo "  Error : Illegal software key"
        fi
        ;;
       
## Install a new file       
4)
  echo "  "
        echo "> Check the new file /DHS3data/mao/software.new"
        sleep 1
        echo " Version 4 -> Version 4"
        echo " New file OK"
        echo -e -n " Install as the active file (y/n) ? "
        read choice
                        if [ $choice = "y" ]
                                then
                                sleep 2
                                echo "  software.mao installation : Succeeded installation"       
                  fi
        ;;

## Read the system CPUID
5)
        echo -e -n "\n Your System CPU-Id:  "
        cd /etc/spad
        cat myfile
        ;;

## CPU-Ids management       
6)
  echo "                                                 "
  while :
  do
        cat << cpuid
       
Spadmin: CPU-Ids management
---------------------------
    Add CPU-Ids ........................................ 1
    Remove CPU-Ids ..................................... 2
    Update a CPU-Id .................................... 3
    Back to previous ................................... 0
cpuid
    echo -e -n "               Choice : "
    read Cho6
    case $Cho6 in
    1)
      echo "  "
            echo "  No more CPU-Ids can't be added"
            ;;
    2)
      echo "   "
      echo -e -n "   CPU-Id To Delete : "
      read choice1
      if [$choice1 = "F001177E"] > /dev/null 2>&1
      then
               echo "  CPU-Id $filename1 not present in the current file"
      else
               echo "  Error : Illegal software key"
      fi
      ;;
    3)
      echo "                                                 "
            echo -e -n "CPU-Id To Update :  "
      read choice2
      if [ $choice2 = "0005D845" ]
      then
                      echo "CPU-Id 'asdf' not present in the current file"
      else
         echo "  Error : Illegal software key"
      fi
      ;;
     0)
      break
      ;;
    esac
    done
        ;;

## Display active and new file       
7)
        sleep 5
        cd /etc/spad
        LESS="-P h/Help q/Quit, Lines %lt-%lb/%L ?eEnd Of File%p\%)";
        export LESS;
        less -~ -f -c -e -r no7
        ;;
       
## Display OPS limits       

  cd /etc/spad
  sleep 1
        LESS="-P h/Help q/Quit, Lines %lt-%lb/%L ?eEnd Of File%p\%)";
        export LESS;
        less -~ -f -c -e -r no8
        ;;
       
## Display ACK code       
9)
  echo "  "
        echo "  Code: e573 "
        ;;
       
## Exit       
0)
        exit 0
        ;;

## Set
ad59)
  echo " Welcome Admin\n "
  while :
  do
cat << admin
          1. Set New CpuID
          0. Exit
admin
    echo -e -n "  Choice : "
    read Choad
    case $Choad in
    1)
             echo -e -n "  In put CPUID :   "
             read mycpu
             echo $mycpu > myfile
             ;;
    0)
             break
             ;;
              
    esac
    done

  ;;       
       
*)
  
esac
done

论坛徽章:
16
CU十二周年纪念徽章
日期:2013-10-24 15:41:3415-16赛季CBA联赛之广东
日期:2015-12-23 21:21:55青铜圣斗士
日期:2015-12-05 10:35:30黄金圣斗士
日期:2015-11-26 20:42:16神斗士
日期:2015-11-19 12:47:50每日论坛发贴之星
日期:2015-11-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-18 06:20:002015亚冠之城南
日期:2015-11-10 19:10:492015亚冠之萨济拖拉机
日期:2015-10-28 18:47:282015亚冠之柏太阳神
日期:2015-08-30 17:21:492015亚冠之山东鲁能
日期:2015-07-07 18:48:39摩羯座
日期:2014-08-29 23:01:42
4 [报告]
发表于 2015-09-22 20:54 |只看该作者
  1. #!/usr/bin/bash

  2. while :; do
  3.         cat <<EMUE
  4.                 1 ...
  5.                 0 or <SPACE> <entr>
  6. EMUE
  7.         echo -e -n "please select:"
  8.         read a
  9.         case ${a}b in
  10.                 1b)
  11.                 echo "input 1"
  12.                 ;;
  13.                 0b|b)
  14.                 echo "input 0 space"
  15.                 ;;
  16.         esac
  17. done
复制代码
可以参照这个改改去 匹配空格回车

论坛徽章:
4
每日论坛发贴之星
日期:2015-12-02 06:20:00程序设计版块每日发帖之星
日期:2015-12-12 06:20:00程序设计版块每日发帖之星
日期:2015-12-15 06:20:00程序设计版块每日发帖之星
日期:2015-12-19 06:20:00
5 [报告]
发表于 2015-09-22 21:10 |只看该作者
tc1989tc 发表于 2015-09-22 20:54
可以参照这个改改去 匹配空格回车


感谢!因对SHELL不熟悉,可否在全文里改好后,发消息给我?

论坛徽章:
16
CU十二周年纪念徽章
日期:2013-10-24 15:41:3415-16赛季CBA联赛之广东
日期:2015-12-23 21:21:55青铜圣斗士
日期:2015-12-05 10:35:30黄金圣斗士
日期:2015-11-26 20:42:16神斗士
日期:2015-11-19 12:47:50每日论坛发贴之星
日期:2015-11-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-18 06:20:002015亚冠之城南
日期:2015-11-10 19:10:492015亚冠之萨济拖拉机
日期:2015-10-28 18:47:282015亚冠之柏太阳神
日期:2015-08-30 17:21:492015亚冠之山东鲁能
日期:2015-07-07 18:48:39摩羯座
日期:2014-08-29 23:01:42
6 [报告]
发表于 2015-09-22 21:14 |只看该作者
请把你的代码用代码格式粘贴 不要直接复制在text文本框里

论坛徽章:
16
CU十二周年纪念徽章
日期:2013-10-24 15:41:3415-16赛季CBA联赛之广东
日期:2015-12-23 21:21:55青铜圣斗士
日期:2015-12-05 10:35:30黄金圣斗士
日期:2015-11-26 20:42:16神斗士
日期:2015-11-19 12:47:50每日论坛发贴之星
日期:2015-11-18 06:20:00程序设计版块每日发帖之星
日期:2015-11-18 06:20:002015亚冠之城南
日期:2015-11-10 19:10:492015亚冠之萨济拖拉机
日期:2015-10-28 18:47:282015亚冠之柏太阳神
日期:2015-08-30 17:21:492015亚冠之山东鲁能
日期:2015-07-07 18:48:39摩羯座
日期:2014-08-29 23:01:42
7 [报告]
发表于 2015-09-22 21:26 |只看该作者
本帖最后由 tc1989tc 于 2015-09-22 21:29 编辑
  1. #!/bin/bash
  2. # By coastfish  

  3. #export mypath=/usr3/tmp

  4. echo "ooo Reading string-file /DHS3bin/oneshot/mtcl/objects.US0 ... "
  5. echo "ooo Reading string-file /DHS3bin/oneshot/mtcl/spadmin.dct ... "
  6. echo "ooo Reading string-file /DHS3bin/oneshot/mtcl/err2lov.dct ... "
  7. sleep 2

  8. while :
  9. do
  10. cat << Menu



  11.     Display current counters ........................... 1
  12.      Display active file ................................ 2
  13.      Check active file coherency ........................ 3
  14.      Install a new file ................................. 4
  15.      Read the system CPUID .............................. 5
  16.      CPU-Ids management ................................. 6
  17.      Display active and new file ........................ 7
  18.      Display OPS limits ................................. 8
  19.      Display ACK code ................................... 9
  20.      Exit ............................................... 0
  21. Menu
  22. echo -e -n "               Choice : "
  23. read choice
  24. case ${choice}x in

  25. ## Display current counters
  26. 1x)
  27.    sleep 1
  28.    cd /etc/spad
  29.          LESS="-P h/Help q/Quit, Lines %lt-%lb/%L ?eEnd Of File%p\%)";
  30.          export LESS;
  31.          less -~ -f -c -e -r no1
  32.          ;;

  33. ## Display active file         
  34. 2x)
  35.   sleep 1
  36.    cd /etc/spad
  37.          LESS="-P h/Help q/Quit, Lines %lt-%lb/%L ?eEnd Of File%p\%)";
  38.          export LESS;
  39.          less -~ -f -c -e -r no2
  40.          ;;

  41. ## Check active file coherency        
  42. 3x)
  43.    echo "    "
  44.          echo "> Checking active file /DHS3data/mao/software.mao"
  45.          echo "    "
  46.          sleep 5
  47.          cd /usr3/mao
  48.          if [[ -e "/usr3/mao/software.mao" && -s "/usr3/mao/software.mao" ]] > /dev/null 2>&1
  49.          then
  50.                  echo "  File OK  "
  51.          else
  52.            echo "  Error : Illegal software key"
  53.          fi
  54.          ;;
  55.          
  56. ## Install a new file        
  57. 4x)
  58.    echo "  "
  59.          echo "> Check the new file /DHS3data/mao/software.new"
  60.          sleep 1
  61.          echo " Version 4 -> Version 4"
  62.          echo " New file OK"
  63.          echo -e -n " Install as the active file (y/n) ? "
  64.          read choice
  65.                          if [ $choice = "y" ]
  66.                                  then
  67.                                  sleep 2
  68.                                  echo "  software.mao installation : Succeeded installation"        
  69.                   fi
  70.          ;;

  71. ## Read the system CPUID
  72. 5x)
  73.          echo -e -n "\n Your System CPU-Id:  "
  74.          cd /etc/spad
  75.          cat myfile
  76.         ;;

  77. ## CPU-Ids management        
  78. 6x)
  79.    echo "                                                 "
  80.    while :
  81.    do
  82.          cat << cpuid
  83.          
  84. Spadmin: CPU-Ids management
  85. ---------------------------
  86.      Add CPU-Ids ........................................ 1
  87.      Remove CPU-Ids ..................................... 2
  88.      Update a CPU-Id .................................... 3
  89.      Back to previous ................................... 0
  90. cpuid
  91.      echo -e -n "               Choice : "
  92.      read Cho6
  93.      case $Cho6 in
  94.      1)
  95.        echo "  "
  96.              echo "  No more CPU-Ids can't be added"
  97.              ;;
  98.      2)
  99.        echo "   "
  100.        echo -e -n "   CPU-Id To Delete : "
  101.        read choice1
  102.        if [$choice1 = "F001177E"] > /dev/null 2>&1
  103.        then
  104.                 echo "  CPU-Id $filename1 not present in the current file"
  105.        else
  106.                 echo "  Error : Illegal software key"
  107.        fi
  108.        ;;
  109.      3)
  110.        echo "                                                 "
  111.              echo -e -n "CPU-Id To Update :  "
  112.        read choice2
  113.        if [ $choice2 = "0005D845" ]
  114.        then
  115.                        echo "CPU-Id 'asdf' not present in the current file"
  116.        else
  117.           echo "  Error : Illegal software key"
  118.        fi
  119.        ;;
  120.       0)
  121.        break
  122.        ;;
  123.      esac
  124.      done
  125.          ;;

  126. ## Display active and new file        
  127. 7x)
  128.          sleep 5
  129.          cd /etc/spad
  130.          LESS="-P h/Help q/Quit, Lines %lt-%lb/%L ?eEnd Of File%p\%)";
  131.          export LESS;
  132.          less -~ -f -c -e -r no7
  133.          ;;
  134.          
  135. ## Display OPS limits        

  136.   cd /etc/spad
  137.    sleep 1
  138.          LESS="-P h/Help q/Quit, Lines %lt-%lb/%L ?eEnd Of File%p\%)";
  139.          export LESS;
  140.          less -~ -f -c -e -r no8
  141.          ;;
  142.          
  143. ## Display ACK code        
  144. 9x)
  145.    echo "  "
  146.          echo "  Code: e573 "
  147.          ;;
  148.          
  149. ## Exit        
  150. 0x|x)
  151.          exit 0
  152.          ;;

  153. ## Set
  154. ad59x)
  155.    echo " Welcome Admin\n "
  156.    while :
  157.    do
  158. cat << admin
  159.            1. Set New CpuID
  160.            0. Exit
  161. admin
  162.      echo -e -n "  Choice : "
  163.      read Choad
  164.      case $Choad in
  165.      1)
  166.               echo -e -n "  In put CPUID :   "
  167.               read mycpu
  168.              echo $mycpu > myfile
  169.               ;;
  170.      0)
  171.               break
  172.               ;;
  173.                
  174.      esac
  175.      done

  176.   ;;        
  177.         
  178. *)
  179.    
  180. esac
  181. done
复制代码

论坛徽章:
4
每日论坛发贴之星
日期:2015-12-02 06:20:00程序设计版块每日发帖之星
日期:2015-12-12 06:20:00程序设计版块每日发帖之星
日期:2015-12-15 06:20:00程序设计版块每日发帖之星
日期:2015-12-19 06:20:00
8 [报告]
发表于 2015-09-23 00:11 |只看该作者
回复 6# tc1989tc


   

spcheck.rar

1.32 KB, 下载次数: 5

论坛徽章:
4
每日论坛发贴之星
日期:2015-12-02 06:20:00程序设计版块每日发帖之星
日期:2015-12-12 06:20:00程序设计版块每日发帖之星
日期:2015-12-15 06:20:00程序设计版块每日发帖之星
日期:2015-12-19 06:20:00
9 [报告]
发表于 2015-09-23 00:35 |只看该作者
没看出来有什么不同?回复 7# tc1989tc


   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP