Linux入门之shell中的常用语句(for、while、if、case、expect)

一、for语句

for NUM in 1 2 3
for NUM in {1..3}
for NUM in `seq 1 3`
for NUM in `seq 1 2 10`
do
done

示例:使用for语句打印数字1-10
方法一:
在这里插入图片描述
方法二:
在这里插入图片描述
方法三:
在这里插入图片描述
seq的功能比较强大,它的后面不仅可以接常量,也可以接变量,同时它也可以设置步长。
设置步长
在这里插入图片描述
练习:使用for语句编写脚本,判断主机172.25.254.1-172.25.254.10中,有哪些主机是可以ping通的。
在这里插入图片描述
二、while循环

while 条件 | until 条件	##条件为真,则执行循环语句|直到条件为假,否则一直执行
do
		循环语句
done

示例:while true
在这里插入图片描述
示例:until false
在这里插入图片描述
练习:每3秒执行一次uptime(查看负载使用情况),并显示到屏幕上
在这里插入图片描述
在这里插入图片描述
三、if语句

if 条件一		##如果条件一满足,则执行语句一,不满足,则执行下一个判断
then 语句一
elif 条件二
then 语句二
...
else
语句n
fi

示例:
在这里插入图片描述
练习:编写一个脚本,用来自动创建用户,用户名及用户密码从userfile和passwdfile中取,同时运行脚本时,可自动判断文件是否存在,及用户是否输入文件名
在这里插入图片描述
运行结果如下
在这里插入图片描述
四、case语句

case 变量 in	##变量值若为word1,则执行action1.否则,继续判断
	word1)
	action1
	;;
	word2)
	action2
	;;
	*)
	action3
esac

示例:
在这里插入图片描述
五、expect

expect		##自动应答命令用于交互式命令的自动执行
spawn		##expect中的监控程序,其运行后会监控命令提出的交互问题
send		##发送问题答案给交互命令
"\r"		##表示回车
exp_continue	##表示当问题不存在时继续回答下面的问题
expect eof		##表示问题回答完毕退出expect环境
interact		##表示问题回答完毕留在交互界面
set NAME[ lindex $argv n ]		##定义变量

创建一个问答脚本,使用【sh】命令,执行该脚本,根据问题,我们可以进行回答。那么我们该如何自动的进行脚本的应答?
在这里插入图片描述
方法一:使用定向输入法,将所有问题的答案写在一个脚本中,通过执行该脚本,可以自动的回答问题。这种方法的回答比较固定且如果问题更改或不存在,则会导致回答的错乱
在这里插入图片描述
方法二:使用expect自动应答语句,如下是expect的基本用法,它也存在许多弊端,问题不存在则会导致回答的错乱或者是命令一直卡在某一位置,无法继续进行。

yum install expect -y 		##安装软件

在这里插入图片描述
方法三:expect自动应答,用户可以跳过某些问题,比较方便
在这里插入图片描述
练习1:编写一个自动应答文件,命令行输入ip和passwd,可以自动登录该主机
在这里插入图片描述
练习2:显示10主机中为打开状态的主机名
在这里插入图片描述
六、脚本中的语句控制器

exit n		##脚本退出,退出值为n
break		##退出当前循环(循环外的命令继续执行)
continue	##提前结束循环内部的命令,但不终止循环

在这里插入图片描述
1.exit n
在这里插入图片描述
2.break
在这里插入图片描述
3.continue
在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值