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

  通過這種方式進行參數值的獲取,更易於理解和維護。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM