zoukankan      html  css  js  c++  java
  • linux shell脚本通过参数名传递参数值

      平常在写shell脚本都是用$1,$2....这种方式来接收参数,然而这种接收参数的方式不但容易忘记且不易于理解和维护。Linux常用的命令都可指定参数名和参数值,然而我们怎样才能给自己的shell脚本也采用参数名和参数值这样的方式来获取参数值呢?而不是通过$1,$2这种方式进行获取。下面的例子定义了短参数名和长参数名两种获取参数值的方式。其实是根据getopt提供的特性进行整理而来。

    #!/bin/sh
    #说明
    show_usage="args: [-l , -r , -b , -w]
                                      [--local-repository=, --repository-url=, --backup-dir=, --webdir=]"
    #参数
    # 本地仓库目录
    opt_localrepo=""
    
    # git仓库url
    opt_url=""
    
    # 备份目录
    opt_backupdir=""
    
    # web目录
    opt_webdir=""
    
    GETOPT_ARGS=`getopt -o l:r:b:w: -al local-repository:,repository-url:,backup-dir:,webdir: -- "$@"`
    eval set -- "$GETOPT_ARGS"
    #获取参数
    while [ -n "$1" ]
    do
            case "$1" in
                    -l|--local-repository) opt_localrepo=$2; shift 2;;
                    -r|--repository-url) opt_url=$2; shift 2;;
                    -b|--backup-dir) opt_backupdir=$2; shift 2;;
                    -w|--webdir) opt_webdir=$2; shift 2;;
                    --) break ;;
                    *) echo $1,$2,$show_usage; break ;;
            esac
    done
    
    if [[ -z $opt_localrepo || -z $opt_url || -z $opt_backupdir || -z $opt_webdir ]]; then
            echo $show_usage
            echo "opt_localrepo: $opt_localrepo , opt_url: $opt_url , opt_backupdir: $opt_backupdir , opt_webdir: $opt_webdir"
            exit 0
    fi

      通过这种方式进行参数值的获取,更易于理解和维护。

  • 相关阅读:
    3.27 课堂 笔记
    第四周 4-2
    3-26
    Java EE期末项目
    条件查询、SQL、JPQL、HQL比较
    J2EE 第八周(04.23-04.29)
    J2EE 第七周(04.16-04.22)
    J2EE 第六周(04.09-04.15)
    J2EE 第五周(04.02-04.08)
    J2EE 第四周(03.26-04.01)
  • 原文地址:https://www.cnblogs.com/rwxwsblog/p/5668254.html
Copyright © 2011-2022 走看看