Chinaunix
标题:
AIX(shell部分)专栏5:参数
[打印本页]
作者:
slls
时间:
2001-11-07 16:16
标题:
AIX(shell部分)专栏5:参数
Parameters(参数)\r\n
通常调用UNIX程序的格式是:[/COLOR]\r\ncommand options files\r\n\r\n
一些与传递给shell的参数相关的变量:
\r\n$# 命令行参数的个数\r\n$? 调用命令的返回值\r\n$$ 当前进程的进程号\r\n$! 最后一个后台命令的进程号\r\n$0 命令行的第一个参数,也就是命令名\r\n$n 命令行的第n个参数,如果要取超过9个参数${n}\r\n$* 所有的命令行参数,等于(\"$1 $2...\"
\r\n\"$@\" 所有的命令行参数,等于(\"$1\" \"$2\"...)\r\n$_ 前一个命令的最后一个命令行参数\r\n\r\n
shell脚本的选项(option)解析[/COLOR]\r\n一般有两种主要的方法来分析传递给shell script的选项(option)。第一种方法是利用上述的shell variables和shift等命令,配合case命令来直接分析,在参数的个数比较少的情况下,这种方法比较常用。但如果参数数量比较多,就需要使用getopts命令。\r\n命令格式:\r\ngetopts option-string variable\r\ngetops解析命令行传递的参数的处理过程为:\r\n1.getopts检查所有的命令行参数,查找以字符\"-\"开始的参数。\r\n2.当找到以字符\"-\"开始的参数,将 \"-\"之后的字符串和option-string比较。\r\n3.如果找到符合的匹配,则指定的变量被设置,否则,此变量被设成?字符。\r\n4.重复1到3,直到所有的选项被处理。\r\n5.当分析结束,getopts返回一个非0返回值,这常用做循环的判断条件。另外,当getopts结束时,它还将变量OPTIND设为最后一个参数的下标。\r\n
【注意】当选项后面需要跟一个附加的参数时(如-i intputfile),在option-string中需要在相应的option中加冒号(如i: )。在这种情况下,当解析到此选项时,附加的参数会被赋值给OPTARG变量。
\r\n
举例:[/COLOR]\r\n下面的shell清单将能够分析:\r\n-i 指定输入的文件名\r\n-o 指定输出的文件名\r\n-v 指定使用详细模式\r\nshell script清单:\r\n
#!/usr/bin/ksh\r\nUSAGE=\"Usage: $0 \'[-v] [-i] [filename] [-o] [filename]\'\"\r\nVERBOSE=false\r\n\r\nwhile getopts o:f:v OPTION ; do\r\n case \"$OPTION\" in\r\n o) OUTFILE=\"$OPTARG\" ;;\r\n i) INFILE=\"$OPTARG\" ;;\r\n v) VERBOSE=true ;;\r\n \\?) echo \"$USAGE\" ;\r\n exit 1\r\n ;;\r\n esac\r\ndone\r\necho Output file is $OUTFILE\r\necho Input file is $INFILE\r\necho In VERBOSE Mode
VERBOSE\r\n[/COLOR]
作者:
lang_m
时间:
2001-12-07 12:39
标题:
啊,斑竹偏袒
呵呵,我也喜欢,下次来灌我的水呀,呵呵
欢迎光临 Chinaunix (http://bbs.chinaunix.net/)
Powered by Discuz! X3.2