linux shell 学习之第13章 处理用户输入
来源:互联网 发布:php检查类是否存在 编辑:程序博客网 时间:2024/06/05 03:22
第13章 处理用户输入
13.1 命令行参数
1. 命令行参数。command 参数1 参数2...。用空格隔开。在脚本中引用时,$0为程序名(脚本名称),$1为第一个参数,$2为第二个参数,以此类推,一直到第九个参数,第十个参数开始,用$(10)表示。当参数为文本字符串时,若字符串中有空格,则字符串需用引号(单引号双引号都行)引起来。
2. $0 表示程序名,存储的是整个脚本的绝对路径。basename $0 可以只获取脚本名字。
3. if [ -n $1 ] 可以检查参数是否有数据。
13.2 特殊参数表量
1. 参数计数。$# 特殊变量表示脚本命令行参数的个数。params=$#, 然后$params 就可以取得最后一个变量,或者用$(!#)也可以获得最后一个变量。
2. 获取所有数据。$* 将所有参数当作一个字符串整体。$@ 则将循环遍历所有参数。
13.3 移动变量
shift命令将移动命令行参数变量,$2变量的值将会移动到 $1,而$1变量的值将会被删除,且不能恢复。但是$0变量的值不变。shift n 表示移动n个位置。
13.4 处理选项
即command -options 形式。
1. 处理简单选项(只有选项没有参数)。用shift命令移动选项。
2. 分离参数和选项。用“--”(双破折号)分隔参数和选项。
3. 处理带值选项。
4. 使用getopt命令。getopt optstring -options parameters, optstring表示所有需要用到的选项字母,带参数的选项字母后面加个冒号。
getopt ab:cd -a -b tes3 -cd test1 test2
-a -b test3 -c -d -- test1 test2
表示有四个选项a,b,c,d, 选项b带参数,后面test1,test2都是参数。
在脚本中使用:set -- 'getopt -q ab:cd "$@"', -q表示忽略错误消息。
但是getopt不擅长处理带空格的参数,可以用getopts命令解决。
getopts optstring variable。 optstring含义同上,若要去掉错误信息,在optstring前面加个冒号。variable保存当前选项值。该命令有两个环境变量,OPTARG表示保存选项后面所跟的参数,OPTIND保存该命令正在处理的选项的位置,结合OPTIND 和shift一起使用来移动命令行参数。
getopts会合理的处理参数之间的空格,并将所有未定义的选项统一输出为问号。解析选项时,会去掉选项前面的破折号。
13.5 将选项标准化
13.6 用户的输入
主要是read命令,在脚本中使用read variable,来获取用户的输入,$varialbe 可以调用用户的输入。
echo -n, -n选项会移掉字符串末尾的换行符,允许用户紧跟其后输入数据。
read 后面可以跟多个变量,以便来获取用户的多个输入,如果用户输入的值多于变量,最后多出的值会统一分配给最后一个变量。
read -p 选项,省略echo命令并制定变量名字,可以多个变量。
如果不指定变量,read命令会将所有接收到的数据都放到特殊环境变量REPLY中。
read -t,-t可以设置超时时间。
read -n,-n选项可以对用户输入的字符计数,-n1 表示只接收用户输入的第一个字符。
read-s,隐藏方式,即用户输入的数据不在屏幕上显示,比如密码。实际上只是将用户输入字符的颜色设置成背景色一样。
cat testfile | while read line 从文件中读入,每次读取一行数据,没有数据时,read命令会退出并返回非零退出状态码。
- linux shell 学习之第13章 处理用户输入
- Linux学习-shell脚本编程基础之处理用户输入
- 《Linux命令行与shell脚本》笔记--第13章:处理用户输入
- linux shell 处理用户输入
- Linux命令行与shell编程笔记-13处理用户输入
- [shell脚本学习]处理用户输入
- 【shell】处理用户输入
- 第四章:shell处理用户输入
- Linux之shell的输入处理
- 【学习Linux】处理用户的输入
- 第14章 处理用户输入
- shell---ch14处理用户输入
- Shell脚本学习笔记-用户输入处理
- linux--处理用户输入
- linux命令行与shell脚本大全_第十三章_处理用户输入
- linux shell读取用户输入
- Linux Shell 读取用户输入
- linux shell获取用户输入
- 关于分布式事务、两阶段提交、一阶段提交、Best Efforts 1PC模式和事务补偿机制的研究
- 对 qpainter::scale 的注解
- unique_ptr, effective modern c++笔记
- 14.2.2
- alarm 开机时判断
- linux shell 学习之第13章 处理用户输入
- SQL 查看职责,哪个用户有
- 慕课网--toggleButton
- Codeforces Round #369 (Div. 2) B. Chris and Magic Square
- 14.3
- 16. 3Sum Closest
- 15.1.1
- 51nod-1255 字典序最小的子序列
- 15.1.2