一、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倒计时