Linux实习 shell编程.docVIP

  • 125
  • 0
  • 约 5页
  • 2016-10-18 发布于贵州
  • 举报
Linux实习 shell编程

实习四 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的函数点命令 in southwest of Zhejiang Provincial Committee of the partys struggle, develop democratic United Front against Japan, established the armed forces and the anti-Japanese base area, decided

文档评论(0)

1亿VIP精品文档

相关文档