zoukankan      html  css  js  c++  java
  • shell for 循环简单用法

    for循环:固定有限次数循环,工作中for使用最多。

    语法1:

    for 变量名 in 变量取值列表

    do

             指令…

    done

    学习方法:记住下面的内容

    for 男人 in 世界

    do

             if [ 有房 ] && [ 有车 ] && [ 有钱 ] && [ 有权 ] && [ … ];then

                       echo “我喜欢”

             else

                       rm –f 男人

    done

    下面列举几个for循环语句例子:

    直接列出变量列表所有元素,打印1、2、3、4、5

    [root@bqh-118 scripts]# vim for.sh
    #!/bin/sh
    for n in 1 2 3 4 5 
    do
       echo $n
    done

    语法2:

    for ((初始值;循环控制条件;变量变化))

    do

    指令

    done

    在语法二中需要注意以下几点:

    ①初始值:在循环开始时,需要给某个变量赋予初始值,如 i=1。

    ②循环控制条件:用于指定变量循环的次数,如 i<=100,则只要 i 的值小于等于 100,循环就会继续。

    ③变量变化:每次循环之后,变量该如何变化,如 i=i+1,代表每次循环之后,变量的值都加 1。

    语法二和其他语言中的 for 循环类似,也就是事先决定循环次数的固定循环。先举一个简单的例子。

    从1加到100总和:

    [root@bqh-118 scripts]# vim for.sh
    #!/bin/sh
    #no.1 echo "-----------------------------" for n in `seq 100` do ((sum+=n)) done echo "1...100总和为:" $sum echo "==============================" #no.2 for ((i=1;i
    <=100;i++)) do ((sum1+=i)) done echo "1...100总和为:" $sum echo "==============================" #no.3 echo "1...100总和为:" $((100*(100+1)/2)) echo "-------------------------------"

    下面我们来一个实战例子:

    扫描192.168.43.110---120 /24网络里,当前在线用户的ip有哪些:

    [root@bqh-118 scripts]# vim scan.sh
    
    #!/bin/sh
    # ******************************************************
    # Author       : aゞ锦衣卫 
    # Last modified: 2019-05-14 23:37
    # Email        : 1147076062@qq.com
    # blog         : https://www.cnblogs.com/su-root
    # Filename     : scan.sh
    # Description  : Scanning online IP
    # ******************************************************
    read -p "请输入您要扫描的IP网段:" IP
    echo "正在扫描..."
    sleep 1
    for i in {110..120}
    do
            if ping -c 1 -W 1 $IP.$i &>/dev/null;then   #-c ping 2次;-W 超时2s
            echo -e "33[32m $IP.$i33[0m is up"
    else
            echo -e "33[31m $IP.$i33[0m is down"
    fi
    done
    echo "扫描完毕!"

    ok!

  • 相关阅读:
    整合Druid数据源
    SpringBoot与数据访问
    IDEA spirng boot @Autowired注解 mapper出现红色下划线解决方法
    IntelliJ Idea 常用快捷键列表
    docker 安装mysql示例
    设计模式都没用过,好意思出去面试?
    为什么 Java 线程没有 Running 状态?
    厉害了,淘宝千万并发,14 次架构演进…
    Redis 内存满了怎么办……
    Java 线程池 8 大拒绝策略,面试必问!
  • 原文地址:https://www.cnblogs.com/su-root/p/10865140.html
Copyright © 2011-2022 走看看