《Linux实习四 shell编程.doc》由会员分享,可在线阅读,更多相关《Linux实习四 shell编程.doc(5页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
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 gt 0 #当参数大于零时docmd=”$cmd $count” #cmd=”echo $count”count=expr $count - 1 #将参数个数减1
2、doneeval $cmd #输出参数功能:该脚本实现的将参数以倒序输出3. 分析如下脚本功能(注释每条语句,并描述脚本功能):usrname=$1 -z $usrname &read -p “Please Input Username:” username#如果输入username为空,则条件为真,则提示输入usernamew -h|grep -q “$username” | echo $username do not login;exit 1;#打印所有在在线用户,检测输入用户是否在线,如在线,则进行下一条命令,如没在线输出提示用户不在线echo -n Input Message to S
3、end: #提示输入要发送的信息read msg #读取发送信息if echo $msg|write $username 2/dev/null #输出发送信息,并将信息发送到指定用户,且将错误信息抛出then echo Send Message successfully!#如果发送成功,则输出发送信息以及发送成功提示else echo Send Message fail!#如果发送失败,则输出发送失败提示Fi该脚本功能:实现在线用户间的信息交流4. 编写一个脚本,每隔5分钟检查一下当前用户是否有新的邮件,若有则提示用户。while truedo count1=ls -l /var/mail/0
4、9207041|awk print $5 echo $count1 sleep 300 count2=ls -l /var/mail/09207041|awk print $5 echo $count2 if $count1 -eq $count2 then echo No new mail! else echo You hava new mail at date! fidone5. 编写脚本统计指定目录中普通文件的个数及总的大小、目录的个数、链接文件的个数,并指出那些链接文件是失效的链接(即目标文件已经不存在了)echo Please input the directory:read dir
5、count1=ls -l $dir|awk /-/|wc -lcount2=ls -l $dir|awk /d/|wc -lcount3=ls -l $dir|awk /l/|wc -lsize=ls -lr $dir|grep -|awk print $5for j in $sizedolet sum+=$jdoneecho 普通文件的大小:$sumecho 目录文件的个数:$count2echo 链接文件的个数:$count3file=ls -lr -time-style=full-iso $dir|grep l|awk print $11echo $filefor i in $filed
6、o if !(test -e $i) then echo $i 是失效的链接文件 fidone三、 实习总结此次实习了解了shell脚本的基本格式,掌握了Bash中常见元字符的功能以及Bash中变量的概念:用户变量和环境变量的区别、变量的复制与引用及Bash的常用内置变量和环境变量,同时学习了Bash内置命令:eval、echo、exec等,还掌握了Bash中的算术运算let、条件测试test和 及各种测试、逻辑运算和控制结构:if、for、case,最后了解了Bash的函数以及点命令。通过此次的实习,在利用Linux中的一些常用命令和一些语句结构来编写shell程序过程中,感觉到了难度,程序的逻辑性不难,只是在于对Linux中的一些命令运用不熟练,总是记不清楚,以至于造成shell编程的难度,以后似乎要多