Shell腳本通過參數(shù)名傳遞參數(shù)的實現(xiàn)代碼
平常在寫shell腳本都是用$1,$2…這種方式來接收參數(shù),然而這種接收參數(shù)的方式不但容易忘記且不易于理解和維護。Linux常用的命令都可指定參數(shù)名和參數(shù)值,然而我們怎樣才能給自己的shell腳本也采用參數(shù)名和參數(shù)值這樣的方式來獲取參數(shù)值呢?而不是通過$1,$2這種方式進行獲取。下面的例子定義了短參數(shù)名和長參數(shù)名兩種獲取參數(shù)值的方式。其實是根據(jù)getopt提供的特性進行整理而來。
#!/bin/bash while getopts i:o:p:s:t: OPT; do case ${OPT} in i) in_file=${OPTARG} ;; o) out_dir=${OPTARG} ;; p) product_code=${OPTARG} ;; s) software_version=${OPTARG} ;; t) type=${OPTARG} ;; \?) printf "[Usage] `date '+%F %T'` -i <INPUT_FILE> -o <OUTPUT_DIR> -o <P RODUCT_CODE> -s <SOFTWARE_VERSION> -t <TYPE>\n" >&2 exit 1 esac done # check parameter if [ -z "${in_file}" -o -z "${out_dir}" -o -z "${product_code}" -o -z "${software_version}" -o -z "${type}" ]; then printf "[ERROR] `date '+%F %T'` following parameters is empty:\n-i=${in_file}\n-o=${out_dir}\n-p=${product_code}\n-s=${software_version}\n-t=${type}\n" exit 1 fi # block enc java -jar openailab-command-line-auth-0.1-SNAPSHOT.jar ${in_file} ${out_dir} ${product_code} ${software_version} ${type}
以上就是本文的全部內(nèi)容,希望對大家的學習有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
expect自動檢測并重啟另外一臺服務(wù)器上的程序代碼
expect自動檢測并重啟另外一臺服務(wù)器上的程序的代碼,有需要的朋友可以參考下2013-02-02fedora 23 lvm2格式 根目錄磁盤空間不足 擴容方法
下面小編就為大家?guī)硪黄猣edora 23 lvm2格式 根目錄磁盤空間不足 擴容方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02shell腳本中執(zhí)行python腳本并接收其返回值的例子
這篇文章主要介紹了shell腳本中執(zhí)行python腳本并接收其返回值的例子,本文重點在于如何接收python腳本的返回值,需要的朋友可以參考下2014-08-08shell編程中for循環(huán)語句的實現(xiàn)過程及案例
Bash?Shell中主要提供了三種循環(huán)方式:for、while和until,下面這篇文章主要給大家介紹了關(guān)于shell編程中for循環(huán)語句的實現(xiàn)過程及案例,文中通過示例代碼介紹的非常詳細,需要的朋友可以參考下2022-04-04Shell使用Epoch進行日期時間轉(zhuǎn)換和計算的幾個小函數(shù)
這篇文章主要介紹了當你遇到一個date命令不給力的系統(tǒng)時,可以試試這幾個小函數(shù),需要的朋友可以參考下2016-12-12