欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

shell腳本使用兩個(gè)橫杠接收外部參數(shù)的方法

 更新時(shí)間:2020年12月24日 11:17:30   作者:是泛小舟???  
這篇文章主要介紹了shell腳本使用兩個(gè)橫杠接收外部參數(shù)的方法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下

首先,效果是這樣的:

既可以處理短選項(xiàng)(-)又可以處理長(zhǎng)選項(xiàng)(--)

[developer@hadoop-cluster-manager shell]$ ./demo.sh --help
sqoop程序開(kāi)始運(yùn)行: demo.sh
Usage: ./demo.sh [options]
 
Options:
 --append, -a:   追加導(dǎo)入(默認(rèn)為追加模式)
 --overwrite, -o: 覆蓋導(dǎo)入 
 
 --method, -m:   single-單日導(dǎo)入
          interval-區(qū)間導(dǎo)入
          all-全表導(dǎo)入
 
 --date, -d:    單日導(dǎo)入,某一日期數(shù)據(jù)(格式為yyyymmdd)
 
 --startdate, -s: 區(qū)間導(dǎo)入,開(kāi)始日期
 --enddate, -e:  區(qū)間導(dǎo)入,結(jié)束日期
 
 --help, -h     幫助

shell腳本接外部參數(shù)有一種很簡(jiǎn)單的辦法,在腳本中使用$0,$1,$2...指代執(zhí)行腳本時(shí)傳入的第幾個(gè)參數(shù)($0是腳本名)。

但是,這樣做畢竟不夠優(yōu)雅,

另一種方法shell腳本內(nèi)使用getopts命令,只可以接短選項(xiàng)(eg:-d,-s,-h),很方便,比較簡(jiǎn)單,可以自己去搜一搜。

但如果想要達(dá)成上面這種效果同時(shí)支持長(zhǎng)選項(xiàng)和短選項(xiàng)(eg:--date,-d,--startdate,-s,--help,-h),

就只能使用getopt命令了:

# 定義命令執(zhí)行選項(xiàng)
if ! ARGS=$(getopt -o aom:d:s:e:h --long append,overwrite,method:,date:,startdate:,enddate:,help -n "$0" -- "$@"); then
  echo "Terminating..."
  echo -e "Usage: ./$SCRIPT_NAME [options]\n"
  echo -e "Options:\n --append, -a:   追加導(dǎo)入(默認(rèn)為追加模式)\n --overwrite, -o: 覆蓋導(dǎo)入 \n\n --method, -m:   single-單日導(dǎo)入\n          interval-區(qū)間導(dǎo)入\n          all-全表導(dǎo)入\n\n --date, -d:    單日導(dǎo)入,某一日期數(shù)據(jù)(格式為yyyymmdd)\n\n --startdate, -s: 區(qū)間導(dǎo)入,開(kāi)始日期\n --enddate, -e:  區(qū)間導(dǎo)入,結(jié)束日期\n\n --help, -h     幫助"
  exit 1
fi
 
# 將規(guī)范化后的命令行參數(shù)分配至位置參數(shù)($1,$2,...)
# The -- ensures that whatever options passed in as part of the script won't get interpreted as options for set, but as options for the command denoted by the $progname variable.
eval set -- "${ARGS}"
 
# 接受執(zhí)行選項(xiàng);賦值給變量
while true; do
 case "$1" in
  -a|--append)
   mode='append'
   shift
   ;;
  -o|--overwrite)
   mode='overwrite'
   shift
   ;;
  -m|--method)
   method=$2
   shift 2
   ;;
  -d|--date)
   date=$2
   shift 2
   ;;
  -s|--startdate)
   startdate=$2
   shift 2
   ;;
  -e|--enddate)
   enddate=$2
   shift 2
   ;;
  --)
   shift
   break
   ;;
  -h|--help)
   echo -e "Usage: ./$SCRIPT_NAME [options]\n"
   echo -e "Options:\n --append, -a:   追加導(dǎo)入(默認(rèn)為追加模式)\n --overwrite, -o: 覆蓋導(dǎo)入 \n\n --method, -m:   single-單日導(dǎo)入\n          interval-區(qū)間導(dǎo)入\n          all-全表導(dǎo)入\n\n --date, -d:    單日導(dǎo)入,某一日期數(shù)據(jù)(格式為yyyymmdd)\n\n --startdate, -s: 區(qū)間導(dǎo)入,開(kāi)始日期\n --enddate, -e:  區(qū)間導(dǎo)入,結(jié)束日期\n\n --help, -h     幫助"
   exit 0
   ;;
  ?)
   echo "missing options, pls check!"
   exit 1
   ;;
 esac
done

到此這篇關(guān)于shell腳本使用兩個(gè)橫杠接收外部參數(shù)的文章就介紹到這了,更多相關(guān)shell腳本接收參數(shù)內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • shell 使用指定的分割符來(lái)分割字符串的方法

    shell 使用指定的分割符來(lái)分割字符串的方法

    這篇文章主要介紹了shell 使用指定的分割符來(lái)分割字符串的方法,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-05-05
  • 在Linux中復(fù)制文件夾的命令詳解

    在Linux中復(fù)制文件夾的命令詳解

    這篇文章給大家介紹了Linux的基礎(chǔ)操作,如何在 Linux 中復(fù)制文件夾,文中通過(guò)代碼示例給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作有一定的幫助,需要的朋友可以參考下
    2023-12-12
  • linux?shell編程指南之字符串與數(shù)組

    linux?shell編程指南之字符串與數(shù)組

    這篇文章主要給大家介紹了關(guān)于linux?shell編程指南之字符串與數(shù)組的相關(guān)資料,字符串與數(shù)組是Shell編程中常用的數(shù)據(jù)類(lèi)型,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下
    2023-06-06
  • Linux?Shell任務(wù)控制的實(shí)現(xiàn)示例

    Linux?Shell任務(wù)控制的實(shí)現(xiàn)示例

    本文主要介紹了Linux?Shell任務(wù)控制的實(shí)現(xiàn)示例,包括向腳本發(fā)送信號(hào)、修改腳本的優(yōu)先級(jí)以及在腳本運(yùn)行時(shí)從暫停切換到運(yùn)行模式,感興趣的可以了解一下
    2024-01-01
  • shell函數(shù)內(nèi)調(diào)用另一個(gè)函數(shù)(不帶返回值和帶返回值)

    shell函數(shù)內(nèi)調(diào)用另一個(gè)函數(shù)(不帶返回值和帶返回值)

    本文主要介紹了shell函數(shù)內(nèi)調(diào)用另一個(gè)函數(shù)(不帶返回值和帶返回值),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2022-08-08
  • shell腳本中常見(jiàn)的一些特殊符號(hào)和作用詳解

    shell腳本中常見(jiàn)的一些特殊符號(hào)和作用詳解

    這篇文章主要介紹了shell腳本中常見(jiàn)的一些特殊符號(hào)和它的作用詳解,總結(jié)的很簡(jiǎn)潔,容易看懂,需要的朋友可以參考下
    2014-06-06
  • 隱藏shell腳本內(nèi)容的工具?shc詳解

    隱藏shell腳本內(nèi)容的工具?shc詳解

    本文主要介紹了隱藏shell腳本內(nèi)容的工具?shc,?雖然它加密的安全性不高,但是我們平??梢园阉鳛橐粋€(gè)shell腳本代碼隱藏和混淆工具來(lái)使用,對(duì)shell腳本隱藏相關(guān)知識(shí)感興趣的朋友一起看看吧
    2021-11-11
  • Linux中執(zhí)行shell腳本的4種方法總結(jié)

    Linux中執(zhí)行shell腳本的4種方法總結(jié)

    這篇文章主要介紹了Linux中執(zhí)行shell腳本的4種方法總結(jié),即在Linux中運(yùn)行shell腳本的4種方法,需要的朋友可以參考下
    2014-08-08
  • shell腳本一鍵同時(shí)推送代碼至github和gitee的解決辦法

    shell腳本一鍵同時(shí)推送代碼至github和gitee的解決辦法

    這篇文章主要介紹了shell腳本一鍵同時(shí)推送代碼至github和gitee的解決辦法,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2020-09-09
  • shell實(shí)現(xiàn)數(shù)字打印從100到200的數(shù)

    shell實(shí)現(xiàn)數(shù)字打印從100到200的數(shù)

    按順序打印從100到200的數(shù)的shell腳本,需要的朋友可以參考下
    2013-02-02

最新評(píng)論