shell 脚本参数处理
shell 脚本参数处理
默认参数变量
$#
传递到脚本的参数个数$*
以一个单字符串显示所有向脚本传递的参数 如 "1 2 3"
$@
分别取出参数 如 "1" "2" "3"
$?
上一个命令的退出状态$-
$_
$!
$[0-9]
用户第n个参数参数
常用处理方式
手动处理 只能通过 内建参数来获取处理
getopts 内建工具,不能处理长参数
getopt 支持长短参数
getopt
系统内建的工具,只能处理短参数
getopt 用法
-o或--options选项后面接可接受的短选项,如ab:c::,表示可接受的短选项为-a -b -c,其中-a选项不接参数,-b选项后必须接参数,-c选项的参数为可选的
-l或--long选项后面接可接受的长选项,用逗号分开,冒号的意义同短选项。
-n选项后接选项解析错误时提示的脚本名字
示例
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
相关推荐
huha 2020-10-16
laisean 2020-11-11
大牛牛 2020-10-30
firefaith 2020-10-30
liguojia 2020-10-20
wangzhaotongalex 2020-10-20
以梦为马不负韶华 2020-10-20
JohnYork 2020-10-16
Julyth 2020-10-16
applecarelte 2020-10-16
laisean 2020-09-27
flycappuccino 2020-09-27
liguojia 2020-09-27
wangzhaotongalex 2020-09-22
流年浅滩 2020-10-23
liujianhua 2020-10-22
woaimeinuo 2020-10-21
tufeiax 2020-09-03
laisean 2020-09-01
vvu 2020-09-16
libao 2020-09-16
Yyqingmofeige 2020-08-18
zhushixia 2020-08-17