站长网 经验 分析Shell脚本中有关getopts的应用方法

分析Shell脚本中有关getopts的应用方法

getopts是一个解析脚本选项参数的工具。 (1) 语法格式:getopts [option[:]] [DESCPRITION] VARIABLE (2) option:表示为某个脚本可以使用的选项. (3) ::如果某个选项(option)后面出现了冒号(:),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION

getopts是一个解析脚本选项参数的工具。

(1) 语法格式:getopts [option[:]] [DESCPRITION] VARIABLE

(2) option:表示为某个脚本可以使用的选项.

(3) ":":如果某个选项(option)后面出现了冒号(":"),则表示这个选项后面可以接参数(即一段描述信息DESCPRITION)

(4) VARIABLE:表示将某个选项保存在变量VARIABLE中

getopts是linux系统中的一个内置变量,一般用在循环中。每当执行循环是,getopts都会检查下一个命令选项,如果这些选项出现在option中,则表示是合法选项,否则不是合法选项。并将这些合法选项保存在VARIABLE这个变量中。

getopts还包含两个内置变量,及OPTARG和OPTIND:

OPTARG就是将选项后面的参数(或者描述信息DESCPRITION)保存在这个变量当中。

OPTIND:这个表示命令行的下一个选项或参数的索引(文件名不算选项或参数)

初次使用要注意这几点:

脚本位置参数会与optstring中的单个字母逐个匹配,如果匹配到就赋值给name,否则赋值name为问号;

optstring中单个字母是一个选项,如果字母后面加冒号,表示该选项后面带参数,参数值并会赋值给OPTARG变量;

optstring中第一个是冒号,表示屏蔽系统错误(test.sh: illegal option — h);

允许把选项放一起,例如-ab

2. 实验

(1) getops参数简单使用

#!/bin/bash 

while getopts ':b:d:' OPT &> /dev/null;do 

 case $OPT in 

 b) 

 echo "The options is b" 

 echo $OPTARG ;; 

 d) 

 echo "The options is d" 

 echo $OPTARG ;; 

 *) 

 echo "Wrong Options" 

 exit 7 ;; 

 esac 

# echo $OPT 

# echo $OPTARG 

done 

echo $OPTIND 

shift $[$OPTIND-1] 

本文来自网络,不代表站长网立场,转载请注明出处:https://www.tzzz.com.cn/html/chuangye/jingyan/2021/0524/6002.html

作者: dawei

【声明】:站长网内容转载自互联网,其相关言论仅代表作者个人观点绝非权威,不代表本站立场。如您发现内容存在版权问题,请提交相关链接至邮箱:bqsm@foxmail.com,我们将及时予以处理。
联系我们

联系我们

0577-28828765

在线咨询: QQ交谈

邮箱: xwei067@foxmail.com

工作时间:周一至周五,9:00-17:30,节假日休息

返回顶部