shell脚本--------for循环

循环语句

while和for的区别:
for语句非常适合用于列表对象无规律,且列表来源是固定的场合

while对于要求控制循环次数、操作对象按数字顺序编号,按特定条件执行重复操作。

重复测试某个条件时,只要条件成立就会反复执行(无限),除非强制终止,或者exit语句退出脚本
for循环语句
需要指定一个变量以及可以取值的取值列表,针对每一个不同的取值执行相同的命令序列,直到变量值用尽,退出循环

取值列表:for语句的执行条件,其中包括多个属性相同的对象,需要预先指定。

格式:
for  变量名  in  取值列表
do
	命令序列
done

注:
for语句的操作对象为用户指定名称的变量
通过in关键字为该变量预先设置一个取值列表

多个取值之间以空格作为分隔
do~done之间是一个循环体

应用领域:
1、字符串取值列表
#!/bin/bash
#字符串取值列表

for A in 电脑 汽车 手机 书包
do
        echo "我要买$A"
done

我在 根目录下的 /opt目录下创建一个的shell脚本名为for01.sh(如下图)
在这里插入图片描述
在vi便一种创建脚本
在这里插入图片描述
A表示自定义变量名
电脑汽车书包表示待取值
$A表示依次取得值
保存退出

chmod +x for01.sh   为脚本添加执行权限

在这里插入图片描述

2、文件取值列表
#!/bin/bash
#文件取值列表(命令执行取值列表)

i=1
for USER in $(cat /opt/a)
do
        echo "$i号用户:$USER"
        let i++
done

先在 /opt目录下创建个a文件写入一些名字
再创建for02.sh文件写入下图内容
在这里插入图片描述
$(cat /opt/a)表示要从这个目录中取值
保存退出为文件添加执行权限
效果如下图
在这里插入图片描述

3、扫描ip地址

#!/bin/bash
#扫描ip地址

for IP in 192.168.108.{1..254}  //网段
do
        ping -c 3 -i 0.2 -W 1 $IP &> /dev/null   

        if [ $? -eq 0 ];then
                        echo "$IP is up!!!"
                else
                        echo "$IP is down!!!"
        fi
done

创建for03目录
如下图
在这里插入图片描述
这里面的192.168.0.是自己的网段
加入执行权限后结果如下图
在这里插入图片描述

4、批量添加用户
方法一:同一个姓的

#!/bin/bash
#批量添加用户

for  A in teacher{1..5}    //添加五个用户
do
        useradd $A
         
        echo 123 | passwd --stdin $A &> /dev/null
        #echo 123  是为用户设置密码
done

创建for04
在这里插入图片描述
添加执行权限并运行如下图
在这里插入图片描述

再cat /etc/passwd会显示用户
在这里插入图片描述

方法二:不同姓名

 vi b.txt

a
b
c
d
e


#!/bin/bash
#批量添加用户

for  A in $(cat /opt/b)
do
        useradd $A
        echo 123 | passwd --stdin $A &> /dev/null
done

创建for05如下图
在这里插入图片描述
为文件添加执行权限并运行
在这里插入图片描述
完成后在cat /etc/passwd中查看
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值