(31) linux中shell的基本语句

一、for语句

 1.for语句格式

  for   i   in {1..10}   |   `seq  1  3  10` (步距为3,即每隔3执行命令)

  do

     sleep 1    ##执行命令后休眠时间为1s

  done  

 2.编写脚本check_host.sh检查1-10的主机是否可达

 脚本格式


 运行结果


 3.编写脚本create_user01.sh自动建立userfile的用户


 4.编写脚本create_user.sh将/mnt/userfile与/mnt/passwdfile一一对应,建立


   修改脚本create_user10.sh,建立指定用户文件的用户,并与指定密码文件一一对应

   ###要求:格式不对时报错!!###


 运行结果


 5.编写脚本time_end.sh实现10s倒计时

  echo  -n  "After  $SEC  seconds  is  end "

  echo  -ne  "\r    \r"   ##覆盖掉上次输出结果


二、while语句

 1.编写脚本use_memory.sh,当根分区内存使用量超过30%时,每隔10s生成警告日志


 或者(use_memory01.sh)


三、if语句

 1.编写脚本User_create.sh,当文件个数不符合要求或者文件不存在时报错

 复杂型(create_user101.sh):


 简单型(create_user100.sh):


 2.编写脚本test.sh,当输入cat时,输出Dog;输入dog时,输出Cat;其他则报错


四、case语句  

  case语句横向同时比较,效率优于if语句

 1.编写脚本service_ctrl.sh,当输入命令时,对httpd服务做不同操作


五、expect语句

  ####注意:需要安装expect服务#####

 expect:自动应答脚本,具备自己的运行环境;针对某一脚本,自动输出结果

 1.编写脚本passwd.exp,自动修改root用户密码

  查看相关命令的脚本:


  编写脚本:


  运行结果:


 2.编写脚本ssh.exp,自动链接指定主机并停在当前位置


 运行结果:


 3.编写脚本check_host10.sh,输出76-80网络通的主机名

   /bin/expect   <<EOF   ##在当前脚本插入EOF之间的命令

   set   timeout   2   ##休眠时间2s,即无法链接是停顿2s,马上进入下一循环

   spawn   ssh   [email protected].$IP   hostname   ##监控ssh命令,链接成功后执行hostname命令

   ...

  EOF


六、脚本语句控制器

  1.exit  ##退出脚本,可给出退出值

   脚本:


   运行结果:


  2.break      ##退出当前循环

   脚本:


   运行结果:


  3.continue   ##提前结束循环内部的命令,但不终止该循环

   脚本:


   运行结果(当i=5时,陷入死循环):


七、倒计时

  1.编写脚本time_end10.sh实现1:10倒计时


  2.编写脚本time_end100.sh实现min:sec倒计时

猜你喜欢

转载自blog.csdn.net/qq_41869566/article/details/80433698
31
31)