bl双性强迫侵犯h_国产在线观看人成激情视频_蜜芽188_被诱拐的少孩全彩啪啪漫画

怎么在shell腳本中接收外部參數-創新互聯

本篇文章為大家展示了怎么在shell腳本中接收外部參數,內容簡明扼要并且容易理解,絕對能使你眼前一亮,通過這篇文章的詳細介紹希望你能有所收獲。

目前創新互聯已為上千的企業提供了網站建設、域名、虛擬主機網站托管、企業網站設計、望江網站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協力一起成長,共同發展。

首先,效果是這樣的:

既可以處理短選項(-)又可以處理長選項(--)

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

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

但是,這樣做畢竟不夠優雅,

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

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

就只能使用getopt命令了:

# 定義命令執行選項
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:   追加導入(默認為追加模式)\n --overwrite, -o: 覆蓋導入 \n\n --method, -m:   single-單日導入\n          interval-區間導入\n          all-全表導入\n\n --date, -d:    單日導入,某一日期數據(格式為yyyymmdd)\n\n --startdate, -s: 區間導入,開始日期\n --enddate, -e:  區間導入,結束日期\n\n --help, -h     幫助"
  exit 1
fi
 
# 將規范化后的命令行參數分配至位置參數($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}"
 
# 接受執行選項;賦值給變量
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:   追加導入(默認為追加模式)\n --overwrite, -o: 覆蓋導入 \n\n --method, -m:   single-單日導入\n          interval-區間導入\n          all-全表導入\n\n --date, -d:    單日導入,某一日期數據(格式為yyyymmdd)\n\n --startdate, -s: 區間導入,開始日期\n --enddate, -e:  區間導入,結束日期\n\n --help, -h     幫助"
   exit 0
   ;;
  ?)
   echo "missing options, pls check!"
   exit 1
   ;;
 esac
done

上述內容就是怎么在shell腳本中接收外部參數,你們學到知識或技能了嗎?如果還想學到更多技能或者豐富自己的知識儲備,歡迎關注創新互聯行業資訊頻道。

網站題目:怎么在shell腳本中接收外部參數-創新互聯
標題網址:http://vcdvsql.cn/article40/cscdho.html

成都網站建設公司_創新互聯,為您提供定制開發手機網站建設網站制作做網站網站建設企業網站制作

廣告

聲明:本網站發布的內容(圖片、視頻和文字)以用戶投稿、用戶轉載內容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網站立場,如需處理請聯系客服。電話:028-86922220;郵箱:631063699@qq.com。內容未經允許不得轉載,或轉載時需注明來源: 創新互聯

成都app開發公司