• 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地址检查主机状态脚本

    [root@poll ~]# vi ip.txt

    192.168.0.8 127.0.0.1

    192.168.0.9

    192.168.0.10

    192.168.0.11

    [root@poll ~]# 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

    [root@poll ~]# 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

    [root@poll ~]# seq -s " " 100 >>num.txt

    [root@poll ~]# 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

    [root@poll ~]# 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

    [root@poll ~]# sh add.sh

    5050

    While循环语句

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

    l  while 条件测试操作

    do

            命令序列

    done

    l  while语句执行原理

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

    l  批量添加用户

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

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

    初始密码均设为123123

    实例

    [root@poll ~]# 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

  • 相关阅读:
    软件包管理
    扩大swap分区
    逻辑卷加密(luks)
    创建一个独立的卷组
    dns视图搭建
    dns服务搭建
    [转]ubuntu错误解决E: Sub-process /usr/bin/dpkg returned an error code (1)
    [转]ubuntu server上网配置
    [转]windows 软链接的建立及删除
    [转]Cygwin的包管理器:apt-cyg
  • 原文地址:https://www.cnblogs.com/tzlsj/p/9164824.html
Copyright © 2020-2023  润新知