zoukankan      html  css  js  c++  java
  • Linux中Shell循环结构for用法笔记

    640?wx_fmt=png

    Shell中可以使用for做固定次数循环的处理。常见的for循环用法主要有以下几种:

    1、带列表的for循环

    语法结构:

    for item in (list)

    do

    command

    done

    示例:

    cat demo1.sh 

    内容如下:

    #!/bin/bash

    names="小明 小王 小张"

    for item in names

    do

    echo "${item}"

    done

    执行命令:bash demo1.sh

    输出结果:

    小明

    小王

    小张

    示例2 计算1到100的和

    脚本1:

    #!/bin/bash

    sum=0

    for item in {1..100}

    do

    let "sum+=item"

    done

    echo "总数为:${sum}"

    脚本2:

    #!/bin/bash

    sum=0

    for item in 'seq 1 100'

    #for item in $(seq 1 100)

    do

    let "sum+=item"

    done

    echo "总数为:${sum}"

    输出结果:5050

    示例3循环打印当前目录的文件信息

    #!/bin/bash

    for item in $(ls)

    do

    ls -l $item

    done

    2、不带列表的for循环

    for list

    do

    command

    done

    示例:

    cat demo3.sh

    #!/bin/bash

    for item in $list

    do

    echo -n $item

    done

    执行:bash demo3.sh 10 20 30 40

    输出结果:

    10

    20

    30

    40

    3、类C语言的for循环

    语法结构:

    for ((exp1;exp2;exp3;))

    do

    command

    done

    用法示例:

    #!/bin/bash

    for ((num=1;num<=10;num++))

    do

    echo -n "$num "

    done

    计算1到100的和以及1到100的奇数和

    脚本内容:

    cat demo4.sh

    #!/bin/bash

    sum1=0

    sum2=0

    for((i=1,j=1;i<=100;i++,j+=2))

    do

    let "sum1+=i"

    if [ $j -lt 100 ];then

    let "sum2+=j" 

    fi

    done

    echo "sum1=$sum1"

    echo "sum2=$sum2"

    执行:bash demo4.sh

    输出:

    sum1=5050

    sum2=2500

    注意:有时候使用for循环脚本不注意很有可能出现死循环,它会无限执行下去,会消耗大量的系统资源,所以

    关于循环的脚本要多加测试,避免出现死循环的情况,如果执行的时候出现死循环可以用ctrl+c停止脚本运行。


  • 相关阅读:
    正则表达式
    C# 通过socket实现UDP 通信
    ApacheServer-----关于443端口被占用的解决方法
    UGUI防止点击穿透
    下载YouTube视频的网站和工具
    模块调用顺序
    安装drupal对服务器环境的要求
    解决win64无法添加curl扩展的问题
    php调用c# webservice方法
    drupal6提示 Compilation failed: disallowed Unicode code point (>= 0xd800 && <= 0xdfff) at offset 9 on line 615
  • 原文地址:https://www.cnblogs.com/hgmyz/p/12351198.html
Copyright © 2011-2022 走看看