getopts是一条获取和处理命令行选项的语句,格式为getopts option_string variable .其中option_string中包含一个有效的单字符选项,若getopts命令在命令行中发现了连字符,那么它将用连字符后面的字符同option_string相比较。若有匹配,则把变量variable的值设为该选项。若无匹配,则variable设为?。当getopts发现连字符后面没有字符,会返回一个非零的状态值。Shell程序中可以利用getopts的返回值建立一个循环。

有时侯选项中还带一个值,getopts命令同样也支持这一功能。这时需要在option_string中选项字母后加一个冒号。当getopts命令发现冒号后,会从命令行该选项后读取该值。若该值存在,那么将被存在一个特殊的变量OPTARG中。如果该值不存在,getopts命令将在OPTARG中存放一个问号,并且在标准错误输出上显示一条消息。

例:

#!/bin/sh

#filename:getopts.sh

while getopts h:u:p: OPTION

do

  case $OPTION in 

       h) echo "主机地址:$OPTARG";;

   u) echo "用户名:$OPTARG";;

   p) echo "密码:$OPTARG";;

   \?) echo "无效的选项";;

  esac 

Done

 

执行脚本时输入:

./getopts.sh -h10.6.208.183 -uroot -p 123

 

则执行结果为;

主机地址:10.6.208.183

用户名:root

密码:123

分类:

技术点:

相关文章: