zoukankan      html  css  js  c++  java
  • 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()

    {

    }

  • 相关阅读:
    时间处理得到UTC时间
    java数据同步陷阱
    360公司2016笔试题
    YTU 1439: 2.4.5 Fractions to Decimals 分数化小数
    YTU 2422: C语言习题 n个数逆序
    YTU 2421: C语言习题 矩形法求定积分
    YTU 2427: C语言习题 整数排序
    YTU 2832: 使用指针访问数组元素--程序填空
    YTU 1050: 写一个函数,使给定的一个二维数组(3×3)转置,即行列互换
    HDU 1069:Monkey and Banana
  • 原文地址:https://www.cnblogs.com/lexiaofei/p/6421534.html
Copyright © 2011-2022 走看看