- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
实习四 shell编程
实习目的
学习shell脚本的编写格式
学习编写简单的Bash脚本
实习内容
练习书中的有关的例题。
完成教材P140的4.4、4.8”[\u]\$”
4.8分析下列Shell脚本的功能:
count=$# #count为位置参数的个数
cmd=echo
while[ $count –gt 0 ] #当参数大于零时
do
cmd=”$cmd \$$count” #cmd=”echo $count”
count=`expr $count - 1` #将参数个数减1
done
eval $cmd #输出参数
功能:该脚本实现的将参数以倒序输出
分析如下脚本功能(注释每条语句,并描述脚本功能):usrname=$1
[ -z $usrname ]read -p “Please Input Username:” username
#如果输入username为空,则条件为真,则提示输入username
w -h|grep -q “^$username” || { echo $username do not login;exit 1;}
#打印所有在在线用户,检测输入用户是否在线,如在线,则进行下一条命令,如没在线输出提示用户不在线
echo -n Input Message to Send: #提示输入要发送的信息
read msg #读取发送信息
if echo $msg|write $username 2/dev/null
#输出发送信息,并将信息发送到指定用户,且将错误信息抛出
then echo Send Message successfully!!
#如果发送成功,则输出发送信息以及发送成功提示
else echo Send Message fail!!
#如果发送失败,则输出发送失败提示
Fi
该脚本功能:实现在线用户间的信息交流
编写一个脚本,每隔5分钟检查一下当前用户是否有新的邮件,若有则提示用户。
while true
do
count1=`ls -l /var/mailawk {print $5}`
echo $count1
sleep 300
count2=`ls -l /var/mailawk {print $5}`
echo $count2
if [ $count1 -eq $count2 ]
then echo No new mail!
else
echo You hava new mail at `date`!
fi
done
编写脚本统计指定目录中普通文件的个数及总的大小、目录的个数、链接文件的个数,并指出那些链接文件是失效的链接(即目标文件已经不存在了)
echo Please input the directory:
read dir
count1=`ls -l $dir|awk /^-/|wc -l`
count2=`ls -l $dir|awk /^d/|wc -l`
count3=`ls -l $dir|awk /^l/|wc -l`
size=`ls -lr $dir|grep ^-|awk {print $5}`
for j in $size
do
let sum+=$j
done
echo 普通文件的大小:$sum
echo 目录文件的个数:$count2
echo 链接文件的个数:$count3
file=`ls -lr --time-style=full-iso $dir|grep ^l|awk {print $11}`
echo $file
for i in $file
do
if !(test -e $i)
then echo $i 是失效的链接文件
fi
done
实习总结
此次实习了解shell脚本的格式掌握Bash中常见元字符的功能Bash中变量的概念:用户变量和环境变量的区别、变量的复制与引用及Bash的常用内置变量和环境变量Bash内置命令:eval、echo、exec掌握Bash中的算术运算let、条件测试test和[ ]及各种测试逻辑运算控制结构:if、for、case了解Bash的函数点命令
文档评论(0)