【学习Linux】处理用户的输入
来源:互联网 发布:暴雪嘉年华 知乎 编辑:程序博客网 时间:2024/05/18 02:18
用户在使用某个脚本文件时是可以输入参数的。
$#: 用户输入参数的个数
$n: 用户输入的第N个参数,如果没有则这个变量是空值,n是一个具体的数值
$*: 把用户输入的所有参数构成一个字符串,被当成一个字符串
$@: 与前面结果一样,但是可以使用for来迭代。
shift:这是一个命令,将最前面的参数移位掉,移位之后的参数不能恢复。
以上是得到用户输入参数的值,值的个数,以及对参数的使用。
我们一般把输入的参数分2种,选项和参数,比如ls -f这里的-f就是一个选项,它以-开头,处理这样的情况就要使用到case语句。
这里有一个规则,选项是-开头,选项和参数之前用--分隔。
比如 ./test -a -- b
这里a就是选项,b就是参数
还有,选项是可以带值的。
比如 ./test -a b -- c d
这里a是选项,b是选项的值,c 和 d 分别是2个参数。
我们还需要达到一个效果,-ab ,这是ab2个选项,这么输入我们要把他当成2个选项来处理,以目前的情况似乎无法处理,所以需要借助命令getopt来帮助我们处理。
这个命令可以把用户输入参数变成我们想要的格式,也就是符合前面的规则
getopt的使用方法:只需要在脚本处理参数之前加上 set -- `getopt -q ab:c "$@"`
这句话的意思就是把$@变成符合规则的形式,-q表示不输出错误信息。因为,如果我的case语句里面只处理了ab2个选项,但是我输入的参数还包括了c选项就会报错。如果加了-q 参数就不会报这个错误信息。
但是这个命令有一个bug,就是./test -a "value1 value2"
这样它就会把"value1 value2"当成2个参数,这个命令处理不了带空格的参数。这时需要使用更高级的命令getopts
getopts的使用方法
对于这个,我只知道输入的选项可以带一个参数。带多个参数需要自行处理代码
带不带参数是自己决定的,使用$OPTARG输出参数。
最重要的是这个解决了前面参数带空格的问题。
还有一个补充是这个命令会把不能识别的参数打出一条语句表示。如果输入了c选项,他会打印一条默认输出的语句,也就是*里面执行的语句,并且$opt=?
- 【学习Linux】处理用户的输入
- linux--处理用户输入
- Linux学习-shell脚本编程基础之处理用户输入
- linux shell 学习之第13章 处理用户输入
- linux shell 处理用户输入
- Linux学 处理用户输入
- Android的用户输入处理
- Android的用户输入处理
- [shell脚本学习]处理用户输入
- linux内核学习笔记------ip数据报的输入处理
- Struts下的用户输入错误处理
- 处理用户输入
- vue处理用户输入
- 【shell】处理用户输入
- Linux命令行与shell编程笔记-13处理用户输入
- Linux Command Line and....ch14(处理用户输入)
- Shell脚本学习笔记-用户输入处理
- 第十三章 处理用户输入
- 版本管理:RCS之命令基础篇
- 【maven学习笔记】maven基础入门学习中文教程
- 慢慢学傅里叶2
- C#入门9.1——结构的使用
- POJO和javabean的异同
- 【学习Linux】处理用户的输入
- 【Gradle 简介】Gradle 构建编译工程学习笔记和使用总结
- 投影(skyline)
- 2016.8.16 C组总结
- java--基础--RandomAccessFile
- 10562 - Undraw the Trees
- 6.1.4 击键和字符
- 6.1.4 击键和字符
- 6.2 击键消息