引用:http://www.qqread.com/aix/n421770806.html通常调用UNIX程序的格式是:
一般有两种主要的方法来分析传递给shell script的选项(option)。第一种方法是利用上述的shell variables和shift等命令,配合case命令来直接分析,在参数的个数比较少的情况下,这种方法比较常用。但如果参数数量比较多,就需要使用 getopts命令。
命令格式:
getopts option-string variable
getops解析命令行传递的参数的处理过程为:
1.getopts检查所有的命令行参数,查找以字符"-"开始的参数。
2.当找到以字符"-"开始的参数,将 "-"之后的字符串和option-string比较。
3.如果找到符合的匹配,则指定的变量被设置,否则,此变量被设成?字符。
4.重复1到3,直到所有的选项被处理。
5.当分析结束,getopts返回一个非0返回值,这常用做循环的判断条件。另外,当getopts结束时,它还将变量OPTIND设为最后一个参数的下标。
【注意】当选项后面需要跟一个附加的参数时(如-i intputfile),在option-string中需要在相应的option中加冒号(如i: )。在这种情况下,当解析到此选项时,附加的参数会被赋值给OPTARG变量。
举例:
下面的shell清单将能够分析:
-i 指定输入的文件名
-o 指定输出的文件名
-v 指定使用详细模式
shell script清单:
#!/usr/bin/ksh
USAGE="Usage: $0 '[-v] [-i] [filename] [-o] [filename]'"
VERBOSE=false
while getopts o:f:v OPTION ; do
case "$OPTION" in
o) OUTFILE="$OPTARG" ;;
i) INFILE="$OPTARG" ;;
v) VERBOSE=true ;;
\?) echo "$USAGE" ;
exit 1
;;
esac
done
echo Output file is $OUTFILE
echo Input file is $INFILE
echo In VERBOSE Mode:$VERBOSE
更多内容请看Windows操作系统安装、系统优化大全、系统安全设置专题,或进入讨论组讨论。
command options files 一些与传递给shell的参数相关的变量: $# 命令行参数的个数 $? 调用命令的返回值 $$ 当前进程的进程号 $! 最后一个后台命令的进程号 $0 命令行的第一个参数,也就是命令名 $n 命令行的第n个参数,如果要取超过9个参数${n} $* 所有的命令行参数,等于("$1 $2...") "$@" 所有的命令行参数,等于("$1" "$2"...) $_ 前一个命令的最后一个命令行参数shell脚本的选项(option)解析
一般有两种主要的方法来分析传递给shell script的选项(option)。第一种方法是利用上述的shell variables和shift等命令,配合case命令来直接分析,在参数的个数比较少的情况下,这种方法比较常用。但如果参数数量比较多,就需要使用 getopts命令。
命令格式:
getopts option-string variable
getops解析命令行传递的参数的处理过程为:
1.getopts检查所有的命令行参数,查找以字符"-"开始的参数。
2.当找到以字符"-"开始的参数,将 "-"之后的字符串和option-string比较。
3.如果找到符合的匹配,则指定的变量被设置,否则,此变量被设成?字符。
4.重复1到3,直到所有的选项被处理。
5.当分析结束,getopts返回一个非0返回值,这常用做循环的判断条件。另外,当getopts结束时,它还将变量OPTIND设为最后一个参数的下标。
【注意】当选项后面需要跟一个附加的参数时(如-i intputfile),在option-string中需要在相应的option中加冒号(如i: )。在这种情况下,当解析到此选项时,附加的参数会被赋值给OPTARG变量。
举例:
下面的shell清单将能够分析:
-i 指定输入的文件名
-o 指定输出的文件名
-v 指定使用详细模式
shell script清单:
#!/usr/bin/ksh
USAGE="Usage: $0 '[-v] [-i] [filename] [-o] [filename]'"
VERBOSE=false
while getopts o:f:v OPTION ; do
case "$OPTION" in
o) OUTFILE="$OPTARG" ;;
i) INFILE="$OPTARG" ;;
v) VERBOSE=true ;;
\?) echo "$USAGE" ;
exit 1
;;
esac
done
echo Output file is $OUTFILE
echo Input file is $INFILE
echo In VERBOSE Mode:$VERBOSE
相关图文阅读
频道图文推荐
健 康 咨 询
时 尚 咨 询
相关专题
- Windows操作系统安装 (15501篇文章)
- 系统优化大全 (18003篇文章)
- 系统安全设置 (23411篇文章)
- 操作系统常见故障解析 (4392篇文章)
- 配置安全的操作系统 (9778篇文章)
- 系统安装手册 (20723篇文章)
- 系统备份专题 (17449篇文章)
- 系统维护手册 (16836篇文章)
- 操作系统密码恢复专题 (1841篇文章)
- Windows操作系统安全集 (18516篇文章)
- AIX系统命令简介 (1695次浏览)
- AIX常见问题整理 (1) (1019次浏览)
- AIX常见问题整理 (3) (983次浏览)
- AIX中有哪些常用日志文件 (866次浏览)
- AIX常见问题整理 (4) (836次浏览)
- AIX中为单网卡配置多IP地址 (726次浏览)
- korn shell基础知识 (711次浏览)
- AIX系统简介 (700次浏览)
- AIX常见问题整理 (6) (690次浏览)
- 新手入门:AIX操作系统安装图解 (689次浏览)



