shell中常用控制语句(下)

一.if语句

格式: 
if 
then 
elif 
then 

else

eg:为便于理解,请看此脚本

                    

                   

eg:编写脚本来开启或关闭相关服务


eg:用if语句来编写一个脚本,用来判断文件类型

脚本内容: 

法一:不使用函数



法二:使用函数



eg:用if语句来编写一个脚本建立用户。
1、文件数量不对报错 
2、文件不存在报错 
3、文件行数差异报错 
4、当用户存在显示用户存在,但不修改密码 

5、当用户不存在,建立用户并设定相应密码



二.case语句(字符匹配,速度快)

格式: 
case 
word1) 
action1 
;; 
word2) 
action2 
;; 
…. 
action_last 

esac

eg:为便于理解可以用if和case分别写一个脚本(输入 cat 显示 dog ;输入 dog 显示 cat),比较可知:

             用if写的(每次都要从前向后比较,越靠后的情况需要花费时间越大):

                       

                      

           用case写的(并行进行,先后顺序对花费时间无影响):

                            

                           

             结论:与if在字符匹配不一样 case语句横向同时比较,效率优于if语句。

eg:编写脚本,在脚本后输入create userfile passfile时建立用户,输入delete userfile时删除用户


三、expect语句
自动应答工具 
spawn 监控 
expect eof 回答完问题后退出 
interact 保留环境不退出,例如:ssh 
exp_continue 继续 
set NAME [ lindex  $ argv 0 ] 代表expect后跟的第一串字符赋值给NAME 

set OBJ [ lindex $argv 1 ] 代表expect后跟的第二串字符赋值给OBJ 

eg:为便于理解,编写此脚本:vim question.sh

内容如下: 

第一种自动应答脚本:

[root@desktop mnt]# vim answer.sh  
  • 1

内容如下: 

执行如下: 

第二种自动应答脚本:

[root@desktop mnt]# vim answer1.sh  
  • 1

内容如下: 
这里写图片描述 
执行如下: 

eg:编写脚本后面跟ip和密码会直接连接其他主机



  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值