for循环语句
读取不同的变量值,用来逐个执行同一组命令。
#方式一,遍历
for 变量名 in 取值列表
#注:取值列表默认的分隔符是空格,换行,制表符(tab)
do
命令序列
done
#方式二,迭代
for((变量=初始值;变量的取值范围;变量的迭代方式))
#例:for((i=1;i<=3;i++))
do
命令序列
done
- 遍历输出连续的一列数字
- 用{ .. }来表示取值范围
- 也可用seq获取取值范围
- 用{ .. }来表示取值范围
- 一个隔一个数输出
实操一:批量添加用户
- 用户名存放在users.txt文件中,每行一个
- 初始密码均设为123456
运行结果
实例二:检测指定范围主机是否通信
- 将通信的主机ip输出到文件host_ip中
运行结果
补充:多线程运行
指实现多个线程并发执行。
在shell脚本中添加{ }&即可实现多线程的效果。
{....}&代表的是将每个循环操作的进程放到后台执行,且后台进程不区分前后顺序。
wait命令:用于等待上面所有后台程序都执行完毕后再执行后面的shell语句。
while循环语句
重复测试某个条件,只要条件成立则反复执行。
while 条件测试操作
do
命令序列
done
- 输出连续的一列数字
实操一:批量添加用户
- 用户名称以stu开头,按数字顺序进行编号
- 一共添加10个用户,即stu1、stu2...
- 初始密码均设为123123
运行结果
实操二:猜价格游戏
- 通过变量RANDOM获得随机数
- 提示用户猜测并记录次数,猜中后退出循环
运行结果
补充
RANDOM随机数,范围0~32767
缩小随机数范围,可通过取余获得。
until循环语句
重复测试某个条件,只要条件不成立就反复执行
until 条件测试操作
do
命令序列
done
- 输出一列连续的数字
实操一:监测系统的登录人数
- until循环检测登录人数
- 若大于3人,每3秒弹出信息提示
实操二:通过循环累加
- 通过循环累加1~50的和值