shell脚本中的常用语句其实和c语言中的常用语句很相似,我们来看看他们的具体用法。
for 语句
格式:
for i in 1 2 3
do
done
i表示一个变量,这个变量先后等于后面所跟的常量1,2,3,要编写的内容在do和done的中间,这相当
同时for语句还有下面这些格式:
for i in {1..3}
do
done
for i in `seq 1 3`
do
done
一个简单的for语句脚本,输出123.
for语句还可以这样用,这里我写了一个倒计时。
while语句
格式:
while 条件
do
done
同样,将需要编写的内容写到do和done之间。
用while语句实现循环
if语句
格式:
if
条件
then
elif
条件
then
else
fi
一个简单的if语句
case语句
格式:
case 字符 in
a)
语句1
;;
b)
语句2
;;
c)
语句3
;;
esac
一个简单的case语句。
expect自动应答命令
expect命令是一个自动应答命令,也就是我们可以事先设定好我们需要的答案,然后有了这个答案我们就可以对一些命令产生的问题进行自动应答。
使用这个命令之前,我们要先安装一个软件。
yum install expect -y
以一个例子来说明这个命令的作用吧,首先,我先写一个简单的示例脚本。
执行这个脚本需要输入相应的答案。
这时,我们的expect命令就派上用场了。
vim expect_test.exp
注意这里的后缀最好以exp结尾
为刚才那个脚本准备答案
执行这个脚本,可以发现,刚才需要回答的问题都自动回答了。
我们也可以设置手动输入答案
我们看第二第三行,按照这个格式,我们可以设置我们输入的第一个答案,还有第二个答案,以此类推。
我们发现,前面使用这个命令时,使用的环境不是我们常常使用的/bin/bash环境,这对我们写其他脚本时会很不方便所以,我们下面来看看如何将expect命令用在/bin/bash环境。
我们在使用expect命令时对刚才的内容作一个输入重定向就可以了。
脚本中的语句控制器
exit n | 脚本退出,退出值为 n |
---|---|
break | 退出当前循 |
continue | 提前结束循环内部的命令,但不终止循环 |