zoukankan      html  css  js  c++  java
  • getopts 用法

    getopts是linux系统中的一个内置变量,一般用在循环中。
    每当执行循环是,getopts都会检查下一个命令选项,如果这些选项出现在option中,则表示是合法选项,否则不是合法选项。并将这些合法选项保存在VARIABLE这个变量中。

    getopts还包含两个内置变量,及OPTARG和OPTIND
    OPTARG就是将选项后面的参数(或者描述信息DESCPRITION)保存在这个变量当中。
    OPTIND:这个表示命令行的下一个选项或参数的索引(文件名不算选项或参数)
    

    在shell脚本中,对于简单的参数,我们使用$1 $2 来处理即可;

    示例 1

    #!/bin/bash
    SOFT_DIR=$1 MAVEN_DIR=$2 echo $SOFT_DIR echo $MAVEN_DIR ----------------- $ sh test.sh /home/soft /home/soft/maven /home/soft /home/soft/maven

    示例 2

            #!/bin/sh
            while getopts :ab: name
            do
                case $name in
                a)  
                    aflag=1
                ;;
                b)  
                    bflag=1
                    bval=$OPTARG
                ;;
                ?) 
                    echo "USAGE:`basename $0` [-a] [-b value]"
                    exit  1
                ;;
                esac
            done
            if [ ! -z $aflag ] ; then
                echo "option -a specified"
                echo "$aflag"
                echo "$OPTIND"
            fi
            if [ ! -z $bflag ] ; then
                echo  "option -b specified"
                echo  "$bflag"
                echo  "$bval"
                echo  "$OPTIND"
            fi
            echo "here  $OPTIND"
            shift $(($OPTIND -1))
            echo "$OPTIND"
            echo " `shift $(($OPTIND -1))`  "
  • 相关阅读:
    P1509 找啊找啊找GF
    P1508 Likecloud-吃、吃、吃
    P1493 分梨子
    P1507 NASA的食物计划
    Java简单从文件读取和输出
    服务器和普通用户电脑的区别
    readUTF()和writeUTF()
    js中substring和substr的用法
    AfxMessageBox和MessageBox差别
    POJ 3691 & HDU 2457 DNA repair (AC自己主动机,DP)
  • 原文地址:https://www.cnblogs.com/sharesdk/p/8709916.html
Copyright © 2011-2022 走看看