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



10-28 04:49