获取UNIX类型的选项:
复制代码代码如下:
#新date程序
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';; H0date '+%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
有时侯选项中还带一个值,getopts命令同样也支持这一功能。这时需要在option_string中选项字母后加一个冒号。当getopts命令发现冒号后,会从命令行该选项后读取该值。若该值存在,那么将被存在一个特殊的变量OPTARG中。如果该值不存在,getopts命令将在OPTARG中存放一个问号,并且在标准错误输出上显示一条消息。
复制代码代码如下:
#--拷贝程序
COPIES=1 VERBOSE=N while getopts vc:OPTION do case $OPTION in c)COPIES=$OPTARG;; v)VERBOSE=Y;; \?)echo "无效参数!" exit 1;; esac done if [ $OPTIND -gt $# ] then echo "No file name specified" exit 2 fi shift 'expr $OPTIND - 1' FILE=$1 COPY=0 while [ $COPIES -gt $COPY ] do COPY='expr $COPY + 1' cp $FILE $ {FILE} $ {COPY} if [ VERBOSE = Y } then echo ${FILE} $ {COPY} fi done Getopt and getopts 的参考链接:http://aplawrence.com/Unix/getopts.html (责任编辑:IT) |