第14章 处理用户输入
来源:互联网 发布:php 权限管理 员工权限 编辑:程序博客网 时间:2024/05/17 00:00
14.1 命令行参数
14.1.1 读取参数
bash shell会将一些称为位置参数的特殊变量分配给输入到命令行中的所有参数。这也包括shell所执行的脚本名称。位置参数变量是标准的数字:
可以在shell脚本中像使用其他变量一样使用$1变量。shell脚本会自动将命令行参数的值分配给变量,不需要你作任何处理。
每个参数必须用空格分开。
14.1.2 读取脚本名
可以用$0参数获取shell在命令行启动的脚本名。
basename命令会返回不包含路径的脚本名。
14.1.3 测试参数
在使用参数前一定要检查其中是否存在数据。
14.2 特殊参数变量
14.2.1 参数统计
特殊变量#含有脚本运行事携带的命令行参数的个数。可以在脚本中过任何地方使用这个特殊变量,和普通变量一样。{ !# }代表了最后一个命令行参数变量。
14.2.2 抓取所有的数据
14.3 移动变量
在使用shift命令时,默认情况下它会将每个参数变量向左移动一个位置。所以,变量
可以给shift命令提供给一个参数,指明要移动的位置数就行了。
14.4 处理选项
选项是跟在单破折线后面的单个字母,它能改变命令的行为。
14.4.1 查找选项
1.处理简单选项
2 分离参数和选项
shell会用双破折线(–)来表明选项列表结束。在双破折线之后,脚本就可以放心地将剩下的命令行参数当作参数,而不是选项来处理了。
3 处理带值的选项
14.4.2 使用getopt命令
getopt命令是一个在处理命令行选项和参数时非常方便的工具。能够识别命令行参数。
1 命令的格式
getopt命令可以接受一系列任意形式的命令行选项和参数,并自动将他们转换成适当的格式。
getopt optstring parameters
optstring中列出你要在脚本中用到的每个命令行选项字母。然后,在每个需要参数值的选项字幕后加一个冒号。
getopt ab:cd -a -b test1 -cd test2 test3
2 在脚本中使用getopt
set命令能够处理shell中的各种变量。
set命令的选项之一是双破折线(–),它会将命令行参数替换成set命令的命令行值。
该方法会将原始脚本的命令行参数传给getopt命令,之后再将getopt命令的输出传给set命令,用getopt格式化后的命令行参数来替换原始的命令行参数,看起来如下所示:
set –
14.4.3 使用更高级的getopts
getopts格式:
getopts optstring variable
有效的选项字母都会列在optstring中,如果选项字母要求有个参数值,就加一个冒号。要去掉错误消息的话,可以在optstring之前加一个冒号。getopts命令将当前参数保存在命令行中定义的variable中。
如果选项需要跟一个参数值,OPTARG环境变量就会保存这个值。OPTIND环境变量保存了参数列表中getopts正在处理的参数位置。
14.5 将选项标准化
14.6 获取用户输入
14.6.1 基本的读取
read命令从标准输入(键盘)或另一个问价描述符中接受输入。在收到输入后,read命令会将数据放进一个变量。
-n选项允许脚本用户紧跟其后输入数据,而不是下一行。
read命令会将提示符后输入的所有数据分配给单个变量,要么你就指定多个变量。
如果不指定变量,会将它收到的任何数据都放进特殊环境变量REPLY中。
14.6.2 超时
-t选项指定了read命令等待输入的秒数。当计时器过期后,read命令会返回一个非零退出状态码。
read命令可以统计输入的字符数,当输入的字符达到预设的字符数时,就自动退出,将输入的数据赋给变量。
14.6.3 隐藏方式读取
-s选项可以避免在read命令中输入的数据出现在显示器上。
14.6.4 从文件中读取
read命令可以读取Linux系统上文件里保存的数据。每次调用read命令,它都会从文件中读取一行文本。当文件中再没有内容时,read命令会退出并返回非零状态码。
对文件使用cat命令,将结果通过管道直接传给含有read命令的while命令。
14.7 小结
- 第14章 处理用户输入
- linux shell 学习之第13章 处理用户输入
- 第十三章 处理用户输入
- 《Linux命令行与shell脚本》笔记--第13章:处理用户输入
- 第4章 处理用户输入与显示数据------------(读取参数、读取程序名称、测试参数)
- 第4章 处理用户输入与显示数据------------(参数计数、获取所有数据)
- 第4章 处理用户输入与显示数据------------(移位shift、命令行参数选项)
- 第4章 处理用户输入与显示数据------------(getopt命令)
- 第4章 处理用户输入与显示数据------------(更高级的getopts命令、标准化选项)
- 第4章 处理用户输入与显示数据------------(默读与文件读取)
- 第4章 处理用户输入与显示数据------------(从键盘输入的命令read,对输入计时计数)
- 第四章:shell处理用户输入
- 处理用户输入
- linux--处理用户输入
- vue处理用户输入
- 【shell】处理用户输入
- linux shell 处理用户输入
- Android的用户输入处理
- C++(20):STL初步之set初步
- django中数据库一对一,一对多,多对多关系
- 报表打印技术-web打印
- 光栅化插值方法-透视除法
- spark官方文档
- 第14章 处理用户输入
- 【caffe源码研究】第二章:使用篇(6) : 训练过程分析工具
- 指针初级教学
- WebRTC学习之四:最简单的语音聊天
- OJ 2015: C语言实验——余弦
- 使用命令行删除源代码行尾空格
- 快速上手 flask
- UIControl
- Git和Bitbucket入门之代码上传