问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

shell使用getopts编写一个脚本

发布网友 发布时间:2023-11-01 11:36

我来回答

1个回答

热心网友 时间:2024-03-23 03:16

下面是一个简单例子(脚本为getopt):

#/bin/bash
echo $0
echo $*
while getopts ":a:bc" opt
do
case $opt in
a )
echo $OPTARG
echo $OPTIND;;
b )
echo "b $OPTIND";;
c )
echo "c $OPTIND";;
? )
echo "error"
exit 1;;
esac
done
echo $OPTIND
echo $*
shift $(($OPTIND - 1))
echo $*
echo $0

运行sh getopt.sh -a 12 -b -c 34 -m
输出:
getopt.sh
-a 12 -b -c 34
12
3
b 4
c 5
5
-a 12 -b -c 34
34
getopt.sh

可以得出一些结论: 
1、$0在用sh 或者 ./执行脚本时,指的是脚本名,用source或.执行时,永运是bash,这也反应了sh 或者 ./执行脚本的原理和source的方式是不同的.
2、$1 (1....n)指的第一个参数到....第n个参数
3、OPTARG存储相应选项的参数 OPTIND指向的是下一个参数的index
4、shift 会改变参数的顺序,通过左移去掉某些参数
5、getopts检测到非法参数就会停止,比如上例中遇到34就会终止,并不会去检测-m了,也就是说只要前一个参数是合法的(包含在option_string中的),就会继续检测下一个参数。
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
四川省综合素质a级证书? 华为手机怎么还原微信聊天记录 华为手机微信内容恢复方法 股权转让的主要方式有哪些 股权转让有哪几种方式 股东转让的几种形式是 股东转让的几种形式 高考多少分能上衡阳师范学院南岳学院 你们被玖富金融骗,后期有还款吗? 玖富悟空理财2022年最新消息还有希望吗?悟空理财最新情况(悟空理财可信... 同等责任交通事故致人死亡是否追究刑事责任 记得,但是密码忘了,里面还有钱不知道怎么办? 记得,但是密码忘了,里面还有钱不知道怎么办? 卓路电子的线路板打样出来的效果怎么样? 商铺一拖三是什么意思啊? 大年三十前一天中午,中国银行转账建行,本地的,需要多久才能到... 大年三十ATM转账多久到账? 请问赏心悦目乐陶陶,日月无私得平和是指什么动物?44 请问聊建集团与聊城金柱集团是一个公司吗20 语文的语文的题目- -。各位大师点拨一下! 态度的心理自我防御功能有什么用? 老公不爱我了,我要不要生二胎?19 老公不爱我还要我还生二胎吗9 老师是否能将学生的少先队员资格消除 life和live的词意的用法上有什么不同?2 怎样可以微信第二次修改呢???410 life和live的词意的用法上有什么不同?2 Live Life的区别338 比亚迪f0和奇瑞QQ全方面比较,大家给点建议?? 老公对我不好还要为他生二胎吗38 夫妻感情不好还能生二胎吗?你有什么看法?13 shell getopts里的参数必须输入吗 求极限(x趋向于0正方向)1-e的x分之一次方 除以 1+e... 求x趋向0加和0减时e的x分之一次方的极限,答案我知道,可是... life和live的词意的用法上有什么不同?2 e的-1/(x)次方除以x的1000次方在x趋向于0的极限 赏心悦目是什么意思?402 创维电视60秒后自动关机怎么回事4 我公司要做个网上商城,想用JAVA语言的系统,不知道怎么样,...2 如何合理利用时间193 怎么修改第三次 这位演哪些电视剧啊?看了很多他演的电视就是不晓得名字 奇瑞qq和比亚迪f0哪个好呢?128 华为手机如何更改?80 华为手机怎么改251 华为手机怎么更改40 如何更改华为手机14 怎么第三次改 聊建集团一公司拖欠工资4 房产过户费怎么算我今年在东台买了一套拆迁安置房面积是101平米... 当x趋近于0的两边时,求1-e的x分之一次除以1+e的x分之...