shell编程2
2018-06-04 21:54 何维 阅读(335) 评论(0) 编辑 收藏 举报
1. shell 变量基本用法及常用符号使用
(1) 将主提示符改为用户的主目录名
(2)将字符串DOS file c:>\$student\*赋值给变量x,并显示出来
(3) 在 shell 命令终端输入likes=(cosmos galaxy moon); likes[6]=mars,然后使用 echo 分别显示以下表达式的值,并结合结果
(1)echo ${likes[*]} 显示likes数组里的所有值
(2)echo ${likes[@]}显示likes数组里的所有值
(3)echo ${#likes[*]} 统计likes数组中元素的个数
(4) echo ${#likes[*]} 统计likes数组中元素的个数
(5) echo ${#likes} 可能是统计空格之前的字符串的长度
(6) echo ${#likes[0]} 统计数组第一个元素的字符串的长度
没有删除变量之前输出的是之前name的字符串
删除变量之后 输出hello
查阅资料后:是从某个地方开始截取字符串
在 shell 命令终端输入name=fire,然后使用 echo 显示表达式①,观察结果;然后输入命令unset name,再输入表达式①观察结果。结合两次结果,写出表达式的作用。
变量名name=fire,不为空,表达式1的结果为name的值,即fire
unset name是删除变量的值,此时name值为hello
5、
${name%%.*} 从name结尾开始删除和.之后匹配的最长字符串
${name%.* } 从name结尾开始删除和.之后匹配的最短字符串
6、
${name#*/} 从name开始的地方 删除/之前最短的字符串
${name##*/}从name开始的地方 删除/之前最短的字符串
(7) 已知某同学提交的博客文章页面地址 address 如下:
address='http://www.cnblogs.com/xyz/p/8569001.html' 通过字符串匹配,如何得到其博客主页地址: homepage='http://www.cnblogs.com/xyz'
写出由变量 address 得到变量 homepage 的 shell 命令实现
2. shell 脚本分析
(1) 使用 vim/gedit 编写 shell 脚本文件 ex1.sh
结合 3 次运行结果,分析脚本代码,在实验报告中总结以下内容:
① 整个 shell 脚本的功能是什么?
答:整个脚本的功能是将参数倒序输出。参数有几个,while就循环几次。
② 第 8 行、第 9 行、第 11 行的功能是什么?
答:第8行指将输入参数个数给cmd,第9行指每循环一次,$count数减少1,第11行指运行cmd命令。
③ 每次运行时,脚本中的while 循环分别执行几次?
答:有几个参数,则while运行几次,所以脚本中的while分别运行0,2,3次。
④ 运行.ex1.shgodblessu 时,while 循环体第 1 次被执行时,第 8 行执行后变量 cmd 的值为?
答:while第一次被执行时,第8行执行后cmd的值为echo $3。
(2) 使用 vim/gedit 编写 shell 脚本文件 ex2.sh
① line6 中,who | grep “^$1”的功能?
答:用于判断用户是否存在。
② line8~10 功能?
答:line8~10是将第一个参数重定向到LimitString中,向其发送Hello hadoop。
(3) 使用 vim/gedit 编写 shell 脚本文件 ex3.sh
该脚本的功能是?
答:该脚本功能是将当前文件夹下的所有.sh格式的文件复制,新文件名为为原文件名加上后缀".BACKUP--日期--时间"。
(4)使用 vim/gedit 编写 shell 脚本文件 ex4.sh
① line4-10 中函数NL 的功能?
答:line4-10 中函数 NL的作用是将用户输入的值保存在变量x中,然后输出行号和x的值。
② line14 中,条件测试满足时,脚本执行的功能是?
答:条件测试满足时,脚本执行函数NL的功能。
③ line17-line21,这部分脚本的功能是?
答:将参数传递给NL调用,再shift删除这个参数,其余参数左移一位。
3. shell 脚本编写
(1)
(2)
(3)
(4)
(5)
总结:这次实验量比较大,做的也比较时间长,可能细节方面没有很好得处理。