04 shell编程之循环语句

Posted tzlsj

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了04 shell编程之循环语句相关的知识,希望对你有一定的参考价值。

Shell编程之循环语句

学习目标:

掌握for循环语句编程

掌握while循环语句编程

 

目录结构:

 技术分享图片

 

 

For循环语句

l  读取不同的变量值,以逐个执行同一组命令

l  For语句结构

for 变量名 in 取值列表

do

        命令序列

done

l  for执行原理

for 变量=取值1,do命令序列。取值2,取值3…取值n,分别do。所有取值都执行完之后,done结束循环。

l  根据IP地址检查主机状态

Ip地址存放在ip.txt文件中

每行一个

使用ping命令检测各主机的联通性

l  根据ip地址检查主机状态脚本

[[email protected] ~]# vi ip.txt

192.168.0.8 127.0.0.1

192.168.0.9

192.168.0.10

192.168.0.11

[[email protected] ~]# vi chkhost.sh

#!/bin/bash

#this is chkhosts

hlist=$(cat /root/ip.txt)

for IP in $hlist

do

        ping -c 3 -i 0.2 -W 1 $IP &>/dev/null

        if [ $? -eq 0 ] ;then

                echo "host $IP is up"

        else

                echo "host $IP is down"

        fi

done

[[email protected] ~]# sh chkhost.sh

host 192.168.0.8 is up

host 127.0.0.1 is up

host 192.168.0.9 is down

host 192.168.0.10 is down

host 192.168.0.11 is down

 

自制累加小脚本从1加到100

[[email protected] ~]# seq -s " " 100 >>num.txt

[[email protected] ~]# cat num.txt

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100

[[email protected] ~]# vi add.sh

#!/bin/bash

#description : 1 add 2 add 3 add ... add 100

a=$(cat /root/num.txt)

c=0

for b in $a

do     

        i=$b

        c=$(($i+$c))

done

echo $c

[[email protected] ~]# sh add.sh

5050

While循环语句

l  重复测试某个条件,只要条件成立则反复执行

l  while 条件测试操作

do

        命令序列

done

l  while语句执行原理

while条件测试操作,条件成立,do命令序列。继续判断条件,成立就一直执行do命令序列。不成立就done结束循环。

 

l  批量添加用户

用户以stu开头,按数字顺序进行编号

一共添加20个用户,即stu1,stu2,…,stu20

初始密码均设为123123

 

实例

[[email protected] ~]# vi useadd.sh

#!/bin/bash

#一共添加20个用户,即stu1,stu2,…,stu20

#初始密码均设为123123

perfix=stu

i=1

while [ $i -le 20 ]

do

        useradd $perfix$i

        echo "123123"|passwd --stdin ${perfix}$1 &>/dev/null

        i=$(($i+1))

done

以上是关于04 shell编程之循环语句的主要内容,如果未能解决你的问题,请参考以下文章

Shell编程之case语句与循环语句

Shell编程之循环语句

Shell编程之循环语句

for / while / until 基础循环语句案例图解 shell编程之循环语句

shell编程之循环语句

Shell编程之循环语句