嵌入式系统实验六.pdf
文本预览下载声明
Yan’anUniversity Course:Embedded System Author:BinLiu
实验六、shell脚本之用户输入处理
一、实验目的
1. 掌握命令行参数概念及使用方法
2. 掌握特殊位置参数变量概念及应用
3. 掌握shift 命令
4. 掌握read 命令
5. 掌握选项处理
二、实验内容
1. 命令行参数
运行脚本时添加在后面的数据值。
练习:
Q:脚本的命令行参数存放在哪里,如何引用命令行参数?
..........................
2. 特殊位置参数变量
1) 位置参数变量是标准的数字:
$0:程序名
1
Yan’anUniversity Course:Embedded System Author:BinLiu
$num:第num 个参数;其中num 为整数并且0num10。
练习:使用位置参数变量打印命令行参数
练习:命令行参数为文本字符串。
结论:命令行分隔符为空格,参数中包含空格时必须要用引号。
2) basename 命令—提取脚本名
应用:基于不同的脚本名而执行不同功能的脚本。
练习:编写脚本实现若脚本名为addem 则执行命令行参数的加法运
算;若脚本名为multem 则执行命令行参数的乘法运算。
2
Yan’anUniversity Course:Embedded System Author:BinLiu
链接文件:cp -ltest4 addem |ln test4 addem
cp -stest4multem |ln -stest4multem
3) 命令行参数计数
在脚本中使用命令行参数之前要检查下命令行参数个数,shell
提供了特殊变量$#进行参数计数。
练习:编写简易计算器,实现基本的整形,浮点型算术运算。
获取命令行最后一个参数值方法:
3
Yan’anUniversity Course:Embedded System Author:BinLiu
观察结果:命令行上无任何参数时,$params 与${!#}值有何区别?
4) 获取命令行所有参数
$*、$@提供了对所有参数的快速访问,可存储在单变量中。
练习:
$*:将所有参数当做同一字符串中的单个单词。
$@:将所有参数当做同一字符串中多个独立的单词。
4
Yan’anUniversity Course:Embedded System Author:BinLiu
3. shift命令—移动命令行参数
默认情况下,shift 命令将命令行参数依次向左移动,每移动一次
$1 的值将会被删除。
练习:使用shift 命令遍历命令行参数。
4. read命令
1) 标准输入端读取
5
Yan’anUniversity Course:Embedded System Author:BinLiu
2) read命令选项
1 read -p—允许在read 命令行指定提示符
2 read -t—设定read 命令等待输入的秒数
3 read -n[num]—对输入的字符计数,达到预设字符数,自动退
出。
4 read -s—隐藏方式读取
3) read命令读取文件数据
6
Yan’anUniversity Course:Embedded System Author:BinLiu
常见方法是将cat命令后的输出通过管道传送给含有read命令的
while 命令。
5. 选项处理
选项由单破折线以及跟在其后的单个字符组成,实现改变命令行
为的功能。
1) Linux 分离参数和选项的标准方法:使用特殊字符双破折线(--)。
练习:
显示全部