zoukankan      html  css  js  c++  java
  • 流程控制 -- select

    流程控制之select语句

    作用

    select表达式是bash的一种扩展应用,擅长于"交互式场合"。用户可以从一组不同的值中进行选择
    select可以实现菜单的功能;
    select可以与case结合使用;
    

    语法

    PS3=""	
    select var in 列表 
    do 
    	用户选择后,要执行的命令 
    	break 
    done
    
    #PS3与用户交互,默认为 #?,select默认使用PS3与用户交互,定义变量,传递给select var
    #select负责打印菜单,序号) $var
    #in可以省略,使用位置参数
    

    案例

    案例1:

    [root@egon /]# cat select.sh 
    #!/bin/bash 
    PS3='choose one: '		
    select var in {A..D} 	#菜单
    do 
    	echo "your choose is $var"     
    	echo "OK" 
    	break 	# 跳出select,否则是死循环,可以省略
    done 
    
    [root@egon /]# ./select.sh 
    1) A 
    2) B 
    3) C 
    4) D
    choose one: 3 
    your choose is C 
    OK
    
    

    案例2:若省略 in list 则select会把 $@ 当做列表项

    [root@egon /]# cat select.sh 
    #!/bin/bash 
    PS3='choose one: ' # select默认使用PS3变量的值做提示符
    select var 
    do 
    	echo "your choose is $var" 
    	echo "OK" 
    	break # 跳出select,否则是死循环 
    done 
    
    [root@egon /]# ./select.sh 苹果 梨 蔬菜 香蕉 茄子 
    1) 苹果 
    2) 梨 
    3) 蔬菜 
    4) 香蕉 
    5) 茄子 
    choose one: 1 
    your choose is 苹果 
    OK
    

    案例3:select与case

    PS3="Please select a number: "
    select name in zhangsan lisi wangwu zhaoliu
    do
        case $name in
        zhangsan)
            echo "Hello, zhangsan."
            ;;
        lisi)
            echo "Hello,lisi."
            ;;
        wangwu)
            echo "Hello, wangwu."
            ;;
        zhaoliu)
            echo "Hello, zhaoliu."
            ;;
        *)
            echo "Sorry, there is no such person."
            ;;
        esac
    done
    
    [root@hass-11 script]# sh se2.sh 
    1) zhangsan
    2) lisi
    3) wangwu
    4) zhaoliu
    Please select a number: 2
    Hello,lisi.
    Please select a number: 3
    Hello, wangwu.
    Please select a number:
    
  • 相关阅读:
    Odoo Entypo Regular Icon List
    Ubuntu 循环遍历当前目录下所有文本文件中的字符
    FairyGUI学习
    FairyGUI和NGUI对比
    热更新有多重要?游戏代码热更新杂谈
    收藏的链接
    Vuforia AR实战教程
    BleedTree动画混合树
    Unity3d导出安卓版本
    Unity+高通Vuforia SDK——AR
  • 原文地址:https://www.cnblogs.com/syy1757528181/p/13603844.html
Copyright © 2011-2022 走看看