$#
傳遞到腳本的參數個數$*
以一個單字符串顯示全部向腳本傳遞的參數 如 "1 2 3"
$@
分別取出參數 如 "1" "2" "3"
$?
上一個命令的退出狀態$-
$_
$!
$[0-9]
用戶第n個參數參數shell
手動處理 只能經過 內建參數來獲取處理bash
getopts 內建工具,不能處理長參數工具
getopt 支持長短參數url
系統內建的工具,只能處理短參數spa
-o或--options選項後面接可接受的短選項,如ab:c::,表示可接受的短選項爲-a -b -c,其中-a選項不接參數,-b選項後必須接參數,-c選項的參數爲可選的
-l或--long選項後面接可接受的長選項,用逗號分開,冒號的意義同短選項。
-n選項後接選項解析錯誤時提示的腳本名字
code
ARGS=`getopt -o g:p:n:i:v:u:s: -l namespace:,project:,name:,pipeline:,version:,url:,sys: -- "$@"` # 若是ARGS 語句失敗 直接退出 返回 錯誤 if [ $? != 0 ]; then echo "Fail to get args." exit 1 fi # 轉換參數格式 --long=a => --long a eval set -- ${ARGS} while true do case "$1" in -g|--namespace) NAMESPACE=$2 # 取值賦值 shift 2 # 向後偏移2位 刪除第一個參數和參數值 ;; -p|--project) PROJECT=$2 shift 2 ;; -n|--name) NAME=$2 shift 2 ;; -i|--pipeline) PIPELINE=$2 shift 2 ;; -v|--version) VERSION=$2 shift 2 ;; -u|--url) URL=$2 shift 2 ;; -s|--sys) SYSNAME=$2 shift 2 ;; --) shift break ;; esac done