Shell腳本通過參數(shù)名傳遞參數(shù)的實(shí)現(xiàn)代碼
平常在寫shell腳本都是用$1,$2…這種方式來接收參數(shù),然而這種接收參數(shù)的方式不但容易忘記且不易于理解和維護(hù)。Linux常用的命令都可指定參數(shù)名和參數(shù)值,然而我們怎樣才能給自己的shell腳本也采用參數(shù)名和參數(shù)值這樣的方式來獲取參數(shù)值呢?而不是通過$1,$2這種方式進(jìn)行獲取。下面的例子定義了短參數(shù)名和長參數(shù)名兩種獲取參數(shù)值的方式。其實(shí)是根據(jù)getopt提供的特性進(jìn)行整理而來。
#!/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)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
expect自動檢測并重啟另外一臺服務(wù)器上的程序代碼
expect自動檢測并重啟另外一臺服務(wù)器上的程序的代碼,有需要的朋友可以參考下2013-02-02
fedora 23 lvm2格式 根目錄磁盤空間不足 擴(kuò)容方法
下面小編就為大家?guī)硪黄猣edora 23 lvm2格式 根目錄磁盤空間不足 擴(kuò)容方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-02-02
shell腳本中執(zhí)行python腳本并接收其返回值的例子
這篇文章主要介紹了shell腳本中執(zhí)行python腳本并接收其返回值的例子,本文重點(diǎn)在于如何接收python腳本的返回值,需要的朋友可以參考下2014-08-08
shell編程中for循環(huán)語句的實(shí)現(xiàn)過程及案例
Bash?Shell中主要提供了三種循環(huán)方式:for、while和until,下面這篇文章主要給大家介紹了關(guān)于shell編程中for循環(huán)語句的實(shí)現(xiàn)過程及案例,文中通過示例代碼介紹的非常詳細(xì),需要的朋友可以參考下2022-04-04
linux創(chuàng)建PHP定時任務(wù)的實(shí)例
這篇文章主要介紹了linux創(chuàng)建PHP定時任務(wù)的實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-07-07
Shell使用Epoch進(jìn)行日期時間轉(zhuǎn)換和計(jì)算的幾個小函數(shù)
這篇文章主要介紹了當(dāng)你遇到一個date命令不給力的系統(tǒng)時,可以試試這幾個小函數(shù),需要的朋友可以參考下2016-12-12
python實(shí)現(xiàn)Linux異步epoll代碼
本文提供了python實(shí)現(xiàn)Linux異步epoll的代碼,供大家參考使用,希望對你有幫助2013-11-11

