Linux的Bourne Shell中提供了一条获取和处理命令行选项的语句,即getopts语句。该语句的格式为:
getopts option_string variable
其中option_string中包含一个有效的单字符选项。若getopts命令在命令行中发现了连字符,那么它
将用连字符后面的字符同
option_string相比较。若有匹配,则把变量variable的值设为该选项。若无匹
配,则variable设为?。当getopts发现连字
符后面没有字符,会返回一个非零的状态值。Shell程序中可以利用getopts的返回值建立一个循环。
下面代码说明了date命令中怎么使用getopts命令处理各种选项,该程序除了完成unix的标准命令date的功能外,还增加了许多新的选项。
#新的date程序
#!/bin/sh
if [ $# -lt 1 ];then
date
else
while getopts mdyDHMSTJjwahr OPTION
do
case $OPTION in
m)date '+%m';;
d)date '+%d';;
y)date '+%y';;
D)date '+%D';;
H)date '+%H';;
M)date '+%M';;
S)date '+%S';;
T)date '+%T';;
j)date '+%j';;
J)date '+%y%j';;
w)date '+%w';;
a)date '+%a';;
h)date '+%h';;
r)date '+%r';;
\?)echo "无效的选项!$OPTION";;
esac
done
fi
|
阅读(718) | 评论(0) | 转发(0) |