shell 中常用的控制语句 及脚本运行控制

shell 中常用的控制语句及脚本运行控制

学习目标
for 语句
while 语句
if 语句 判断
case 语句 点名
expect 语句
exit 退出, break中断 , continue 继续

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循环实现ping ip172.25.254.{1…10}并显示可以ping通的ip
在这里插入图片描述
测试
在这里插入图片描述
while 语句
while 条件
do
done
while 示例
while true
do
echo -n ` uptime又是显示不出来的点 > /dev/ $ Dev_tty
echo -ne “\r \r” >/dev/$Dev_tty
sleep 2
done
在这里插入图片描述
在这里插入图片描述
实验
实现每十秒监控一次系统情况
使用uptime
在这里插入图片描述
测试
在这里插入图片描述

if 语句
if
then
elif
then
。。。
else
fi
if 语句示例
if [ “$1” == " start" ]
then
systemctl start $2
elif [ “$1” == “stop” ]
then
systemctl stop $2
else
echo “error:please input start or stop after scripts!”
fi
在这里插入图片描述
在这里插入图片描述
实验
创建指定文件中的用户并且设置用户的密码
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
case 语句
case
word1 )
action1
;;
word2)
action2
;;

*)
action_last
esac
在这里插入图片描述
在这里插入图片描述
expect
expect 是自动应答命令用于交互式命令的自动执行
spawn 是 expect 中的监控程序,其运行后会监控命令提出的
交互问题
send
发送问题答案给交互命令
“\r”
表示回车
exp_continue 标示当问题不存在时继续回答下面的问题
expect eof 标示问题回答完毕退出 expect 环境
interact
标示问题回答完毕留在交互界面
set NAME [ lindex $argv n ]
定义变量
自动应答
yum install expect -y 首先需要安装自动应答
在这里插入图片描述
问题脚本
在这里插入图片描述
回答脚本
在这里插入图片描述
测试结果
在这里插入图片描述

假使我们将其中一个问题注释掉
在这里插入图片描述
手动应答所有问题的答案是需要后面再输入的可以跳过注释掉的问题
在这里插入图片描述
测试
在这里插入图片描述
脚本
ssh到172.25.254.{1…10}
并返回主机名
首先是expect的ssh脚本
在这里插入图片描述
这样就可以用expect进行ssh
脚本写法:
在这里插入图片描述
测试
在这里插入图片描述
脚本中的语句控制器
exit n 脚本退出,退出值为 n
break 退出当前循环
continue 提前结束循环内部的命令,但不终止循环
exit
在这里插入图片描述

在这里插入图片描述
break
在这里插入图片描述
在这里插入图片描述
continue
在这里插入图片描述
在这里插入图片描述