zoukankan      html  css  js  c++  java
  • shell for循环

    seq的效果

    # seq 1 5
    1
    2
    3
    4
    5
    

    第一个for脚本

    #!/bin/bash
    # for 操作
    for i in `seq 1 5`
    do
        echo "num is $i"
    done
    

    计算1到100的和。

    # expr 1 + 100
    101
    
    #!/bin/bash
    # 计算1到100的和
    j=0
    for i in `seq 1 100`
    do
        j=`expr $i + $j`
    done
    
    echo -e "33[32m 1到100的和为:$j 33[0m";
    
    #!/bin/bash
    # 计算1到100的和
    j=0
    for i in {1..100}
    do
        j=`expr $i + $j`
    done
    
    echo -e "33[32m 1到100的和为:$j 33[0m";
    
    #!/bin/bash
    # 计算1到100的和
    j=0
    for((i=1;i<=100;i++))
    do
        j=`expr $i + $j`
    done
    
    echo -e "33[32m 1到100的和为:$j 33[0m";
    

    -x可以查看执行过程。

    /bin/bash -x for.sh 
    + BEGIN=1
    + END=10
    + j=0
    + (( i=1 ))
    + (( i<=10 ))
    ++ expr 1 + 0
    + j=1
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 2 + 1
    + j=3
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 3 + 3
    + j=6
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 4 + 6
    + j=10
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 5 + 10
    + j=15
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 6 + 15
    + j=21
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 7 + 21
    + j=28
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 8 + 28
    + j=36
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 9 + 36
    + j=45
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 10 + 45
    + j=55
    + (( i++ ))
    + (( i<=10 ))
    + echo -e '33[32m 1到10的和为:55 33[0m'
     1到10的和为:55 
    
    

    设置别名

    # alias sh='/bin/bash'
    
    # sh -x for.sh 
    + BEGIN=1
    + END=10
    + j=0
    + (( i=1 ))
    + (( i<=10 ))
    ++ expr 1 + 0
    + j=1
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 2 + 1
    + j=3
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 3 + 3
    + j=6
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 4 + 6
    + j=10
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 5 + 10
    + j=15
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 6 + 15
    + j=21
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 7 + 21
    + j=28
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 8 + 28
    + j=36
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 9 + 36
    + j=45
    + (( i++ ))
    + (( i<=10 ))
    ++ expr 10 + 45
    + j=55
    + (( i++ ))
    + (( i<=10 ))
    + echo -e '33[32m 1到10的和为:55 33[0m'
     1到10的和为:55 
    

    批量压缩文件,批量传输文件都可用到for循环。

  • 相关阅读:
    获取系统版本
    一句代码删除所有子视图
    MAJOR-MINOR-MKDEV
    AF_UNIX和AF_INET域的socket在epoll中的差异
    python-print
    python-class(5)
    python-class(4)
    python-class(3)
    python-class(2)
    python-class(1)
  • 原文地址:https://www.cnblogs.com/jiqing9006/p/10044654.html
Copyright © 2011-2022 走看看