Linux 处理复杂输入参数命令 getopt
2012-07-10 15:14
309 查看
getopt [options] -o|--options optstring [options] [--] parameters
选项说明:
-a:使getopt长参数支持"-"符号打头,必须与-l同时使用
-l:后面接getopt支持长参数列表
-n program:如果getopt处理参数返回错误,会指出是谁处理的这个错误,这个在调用多个脚本时,很有用
-o:后面接短参数列表,这种用法与getopts类似
-u:不给参数列表加引号,默认是加引号的(不使用-u选项),例如在加不引号的时候 --longoption "arg1 arg2" ,只会取到"arg1",而不是完整的"arg1 arg2"
有两种使用方法
a.
b.
注意:如果getopt命令本身没有使用-o|--option选项的话,那么--后面的第一个参数被当做短选项
选项说明:
-a:使getopt长参数支持"-"符号打头,必须与-l同时使用
-l:后面接getopt支持长参数列表
-n program:如果getopt处理参数返回错误,会指出是谁处理的这个错误,这个在调用多个脚本时,很有用
-o:后面接短参数列表,这种用法与getopts类似
-u:不给参数列表加引号,默认是加引号的(不使用-u选项),例如在加不引号的时候 --longoption "arg1 arg2" ,只会取到"arg1",而不是完整的"arg1 arg2"
有两种使用方法
a.
ARGV=($(getopt -o 短选项1[:]短选项2[:]...[:]短选项n -l 长选项1,长选项2,...,长选项n -- "$@")) for((i = 0; i < ${#ARGV[@]}; i++)) { eval opt=${ARGV[$i]} case $opt in -短选项1|--长选项1) process ;; # 带参数 -短选项2|--长选项2) ((i++)); eval opt=${ARGV[$i]} ;; ... -短选项n|--长选项n) process ;; --) break ;; esac }
b.
ARGV=($(getopt -o 短选项1[:]短选项2[:]...[:]短选项n -l 长选项1,长选项2,...,长选项n -- "$@")) eval set -- "$ARGV" while true do case "$1" in -短选项1|--长选项1) process shift ;; -短选项2|--长选项2) # 获取选项 opt = $2 process shift 2 ;; ...... -短选项3|--长选项3) process ;; --) break ;; esac }
注意:如果getopt命令本身没有使用-o|--option选项的话,那么--后面的第一个参数被当做短选项
相关文章推荐
- linux sed命令参数及用法详解---linux 利用script来处理文本文件
- linux 输入参数利用getopt、struct option、getopt_long、getopt_long_only解析
- 第4章 处理用户输入与显示数据------------(getopt命令)
- linux下命令执行结果作为其他命令输入参数
- Linux命令随手记之一:用mkdir的{}参数,用来一次性创建复杂的目录结构
- 第4章 处理用户输入与显示数据------------(getopt命令)
- linux sed命令参数及用法详解---linux 利用script来处理文本文件
- Linux命令选项及参数解析 getopt() getopt_long() 函数
- 使用 getopt 处理命令行长参数(长选项)
- 使用 getopt 处理命令行长参数
- linux--shift命令part2(可变控制输入参数)
- linux下命令执行结果作为其他命令输入参数
- linux--shift命令part1(可变控制输入参数)
- (三)CXF之处理输入参数与输出类型为复杂类型的webService服务
- linux学习之命令参数解析——getopt()函数
- 第4章 处理用户输入与显示数据------------(getopt命令)
- linux sed命令参数及用法详解---linux 利用script来处理文本文
- linux sed命令参数及用法详解---linux 利用script来处理文本文件
- linux下命令执行结果作为其他命令输入参数
- linux下 scp命令不需要输入用户密码