• linux下的Shell编程(6)case和select


    第一个,除了if语句之外,Shell Script中也有类似C语言中多分支结构的case语句,它的语法是:

    case var in

    pattern 1 )

    … ;;

    pattern 2 )

    … ;;

    *)

    … ;;

    esac

    我们再就下面一个例子,看看case语句的用法。

    while getopts vc: OPTION

    do

    case $OPTION in

    c) COPIES=$OPTARG

         ehco "$COPIES";;

    v) echo "suyang";;

    ?) exit 1;;

    esac

    done

    上面的getopts类似于C语言提供的函数getopts,在Shell Script中,getopts经常和while语句联合起来使用。getopts的语法如下:

    getopts option_string variable

    option_string中包含一串单字符选项,若getopts在命令行参数中 发现了连字符,那么它会将连字符之后的字符与option_string进行比较,若匹配成功,则把变量variable的值设为该选项,若无匹配,则把 变量的值设为?。有时候,选项还会带一个值,例如-c5等,这时要在option_string中该选项字母后面加上一个冒号,getopts发现冒号 后,会读取该值,然后将该值放入特殊变量OPTARG中。这个命令比较复杂,如有需要,读者可以详细参阅Shell编写的相关资料。

    上面这个循环的作用就是依次取出脚本名称后面的选项,进行处理,如果输入了非法选项,则进入"?指定的部分,退出脚本程序。

    第二个,Bash提供了一种用于交互式应用的扩展select,用户可以从一组不同的值中进行选择。其语法如下:

    select var in …; do

    break;

    done

    例如,下面这段程序的输出是:

    #!/bin/bash

    echo "Your choice?"

    select var in "a" "b" "c"; do

    break

    done

    echo $var

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

    Your choice?

    1) a

    2) b

    3) c

    第三,Shell Script中也可以使用自定义的函数,其语法形式如下:

    functionname()

    {

    }

  • 相关阅读:
    CF1375E Solution
    牛客暑期营2K Solution
    牛客暑期营1F Solution
    redux的使用
    react-routerV6.0的使用
    react配置emotion
    react项目中配置antd
    使用npx创建react+typescript项目
    【5】Redis从入门到放弃---秒杀案例(Redis的事务+锁机制+lua脚本)
    【四】Redis从入门到放弃---RedisTemplate操作Redis
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/6421534.html
Copyright © 2020-2023  润新知