欢迎来到天天文库
浏览记录
ID:34724179
大小:127.18 KB
页数:5页
时间:2019-03-10
《linux实习四shell编程》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实习四shell编程一、实习目的1.学习shell脚本的编写格式2.学习编写简单的Bash脚本二、实习内容1.练习书中的有关的例题。例题:打印给定行数的*号。2.完成教材P140的4.4、4.8。4.4将主提示符改为你的主目录名,并予以输出。可通过修改PS1环境变量来实现,命令:$PS1=”[u]$”4.8分析下列Shell脚本的功能:count=$##count为位置参数的个数cmd=echowhile[$count–gt0]#当参数大于零时docmd=”$cmd$$count”#cmd=”echo$count”count=`expr$count-1`#将参
2、数个数减1doneeval$cmd#输出参数功能:该脚本实现的将参数以倒序输出1.分析如下脚本功能(注释每条语句,并描述脚本功能):usrname=$1[-z$usrname]&&read-p“PleaseInputUsername:”username#如果输入username为空,则条件为真,则提示输入usernamew-h
3、grep-q“^$username”
4、
5、{echo$usernamedonotlogin;exit1;}#打印所有在在线用户,检测输入用户是否在线,如在线,则进行下一条命令,如没在线输出提示用户不在线echo-nInputMessagetoS
6、end:#提示输入要发送的信息readmsg#读取发送信息ifecho$msg
7、write$username2>/dev/null#输出发送信息,并将信息发送到指定用户,且将错误信息抛出thenechoSendMessagesuccessfully!!#如果发送成功,则输出发送信息以及发送成功提示elseechoSendMessagefail!!#如果发送失败,则输出发送失败提示Fi该脚本功能:实现在线用户间的信息交流1.编写一个脚本,每隔5分钟检查一下当前用户是否有新的邮件,若有则提示用户。whiletruedocount1=`ls-l/var/mail/0920
8、7041
9、awk'{print$5}'`echo$count1sleep300count2=`ls-l/var/mail/09207041
10、awk'{print$5}'`echo$count2if[$count1-eq$count2]thenecho"Nonewmail!"elseecho"Youhavanewmailat`date`!"fidone1.编写脚本统计指定目录中普通文件的个数及总的大小、目录的个数、链接文件的个数,并指出那些链接文件是失效的链接(即目标文件已经不存在了)echo"Pleaseinputthedirectory:"readdircount
11、1=`ls-l$dir
12、awk'/^-/'
13、wc-l`count2=`ls-l$dir
14、awk'/^d/'
15、wc-l`count3=`ls-l$dir
16、awk'/^l/'
17、wc-l`size=`ls-lr$dir
18、grep^-
19、awk'{print$5}'`forjin$sizedoletsum+=$jdoneecho"普通文件的大小:$sum"echo"目录文件的个数:$count2"echo"链接文件的个数:$count3"file=`ls-lr--time-style=full-iso$dir
20、grep"^l"
21、awk'{print$11}'`echo$fil
22、eforiin$filedoif!(test-e$i)thenecho"$i是失效的链接文件"fidone一、实习总结此次实习了解了shell脚本的基本格式,掌握了Bash中常见元字符的功能以及Bash中变量的概念:用户变量和环境变量的区别、变量的复制与引用及Bash的常用内置变量和环境变量,同时学习了Bash内置命令:eval、echo、exec等,还掌握了Bash中的算术运算let、条件测试test和[]及各种测试、逻辑运算和控制结构:if、for、case,最后了解了Bash的函数以及点命令。通过此次的实习,在利用Linux中的一些常用命令和一些语句结构来编写
23、shell程序过程中,感觉到了难度,程序的逻辑性不难,只是在于对Linux中的一些命令运用不熟练,总是记不清楚,以至于造成shell编程的难度,以后似乎要多
此文档下载收益归作者所有