标签:循环 while test ble tar ons 分享图片 图片 解释
Bash shell提供了一些不同的方法来从用户处获得数据,包括以下3中方法:
所谓的选项就是跟在破折号后面的单个字母,它能改变命令的行为。三种在脚本处理选项的方法:
1.1 处理简单选项
shift命令默认情况下将每个参数变量向左移动一个位置。 $3的值会移动到$2中,$2的值会移动到1中,$1的值则会被删除。
shift n 表示移动的位数
以上脚本通过测试第一个参数值的长度执行了一个while循环,当第一个参数的长度为0时,循环结束,测试完第一个参数后,shift命令会将所有的参数位置移动一个位置
1.2 分离参数和选项
同时使用参数和选项怎么办,linux使用特殊字符 -- 将二者分开,该字符告诉脚本什么时候选项结束以及普通参数什么时候开始。
1.3 处理带值的选项
有时候选项会带上一个额外的参数值。此时要求脚本必须能检测到并正确处理。
由于shell命令行的灵活性,自己编写代码判断时,复杂度会比较高。为此,C提供了getopt/getopt_long等函数,C++的boost提供了Options库,在shell中,处理此事的是getopts和getopt。
两者的比较
--option
),getopt 支持参数传递的典型用法:
本节首先介绍getopts命令。
#-o表示短选项,两个冒号表示该选项有一个可选参数,可选参数必须紧贴选项
#如-carg 而不能是-c arg
#--long表示长选项
#"$@"在上面解释过
# -n:出错时的信息
# -- :举一个例子比较好理解:
#我们要创建一个名字为 "-f"的目录你会怎么办?
# mkdir -f #不成功,因为-f会被mkdir当作选项来解析,这时就可以使用
# mkdir -- -f 这样-f就不会被作为选项。
命令行参数运行在运行脚本时向命令行添加数据。
自学Linux Shell13.2-选项处理(主要getopt、getopts命令)
标签:循环 while test ble tar ons 分享图片 图片 解释
原文地址:https://www.cnblogs.com/yaoyaojcy/p/9227272.html