LINUX——shell

循环

for 语句

格式:

for 变量名 in 取值列表;

do

        命令

done

示例:输出1 2 3

 #!/bin/bash

for i in {1..3};

do

echo $i done

# bash test.sh

1

2

3

for 循环还有一种 C 语言风格的语法,常用于计数、打印数字序列:

 #!/bin/bash

for ((i=1;i<=5;i++));

do        

        echo $i

done

 示例:检查多个主机是否存活

#!/bin/bash

for ip in 192.168.1.{1..254};

do

        if ping -c 1 $ip >/dev/null;

                then

                        echo "$ip OK."

                else

                        echo "$ip NO!"

        fi

done

 while 语句

格式:

while 条件表达式;

do

        命令

done

示例: 输出1-5

#!/bin/bash

N=0

while [ $N -lt 5 ];

do

        let N++

        echo $N

done

# bash test.sh

1

2

3

4

5

 示例 2:条件表达式为 true,将会产生死循环

#!/bin/bash

while [ 1 -eq 1 ];

do

        echo "yes"

done

 break 和 continue 语句

break 是终止循环。

continue 是跳出当前循环。

示例 1:在死循环中,满足条件终止循环

#!/bin/bash

N=0

while true;

do

        let N++

        if [ $N -eq 5 ];

                then

                      

  break

        fi

echo $N

done

# bash test.sh

1

2

3

4

 示例 2:举例子说明 continue 用法

#!/bin/bash

N=0

while [ $N -lt 5 ];

do

        let N++

        if [ $N -eq 3 ];

                then continue

        fi

        echo $N

done

# bash test.sh

1

2

4

5

 注意:continue 与 break 语句只能循环语句中使用。

select 语句

select 是一个类似于 for 循环的语句。

格式:

select 变量 in 选项 1 选项 2;

do

        break

done

 示例:

#!/bin/bash

select mysql_version in 5.1 5.6;

do

echo $mysql_version

done

# bash test.sh

1) 5.1

2) 5.6

#? 1 5.1

#? 2 5.6

 用

户输入编号会直接赋值给变量 mysql_version。作为菜单用的话,循环第二次后就不再显示菜单 了,并不能满足需求。

实验:

for创建20用户
    用户前缀由用户输入
    用户初始密码由用户输入
    例如:test01,test10

(1)创建脚本文件

[root@localhost scripts]# vim add_user.sh

(2)编写脚本

#!/bin/bash
##############################################################
# File Name: add_user.sh
# Version: V1.0
# Author: Gao_XY
# Email: Gao_XY@163.com
# Organization:https://blog.youkuaiyun.com/ens33?type=blog
# Created Time : 2024-12-21 15:22:52
# Description:
###############################################################
read -p "请输入用户名前缀:" u
read -p "请输入初始密码:" p
for i in {01..20}                #循环定义变量
do
        if ! id -u ${u}${i} &>/dev/null        #判断$u$i的用户是否不存在(!)
        then
                useradd ${u}${i}        #若不存在,则创建角色
                echo ${p} | passwd --stdin ${u}${i} &>/dev/null        #修改密码,结果不输出
        else
                echo "this $u$i 存在"        #否则用户存在
        fi
done
 

 (3)测试

 

再次执行

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值