zoukankan      html  css  js  c++  java
  • bash for循环 while循环

    for循环 while循环
    Chenxin
    20181031 update

    循环用法
    for((i=1;i<=10;i++));do echo $(expr $i * 4);done

    for i in ls

    在shell中常用的是 for i in $(seq 10)

    使用seq 100 如 for i in seq 100 或 for i in seq 1 1000000;do

    for i in {1..10000000};do #这个方法是非常慢的

    for i in ${arr[@]}

    for i in $* ; do

    for File in /proc/sys/net/ipv4/conf/*/accept_redirects; do
    echo $File
    done

    for i in f1 f2 f3 ;do
    echo $i
    done

    使用while循环
    i=1
    while(($i<100));do
    echo $i
    i=expr $i + 1
    done
    另外, i=expr $i + 1还可以改为i=$(($i+1))加快运算速度(看shell支持与否)

    最慢的方法
    echo $i
    done

    单行for循环

    1.单行for循环使用{}的方式:for i in /bin/ls;do { echo test "$i" ;} done
    注意2个分号不能少,否则语法错误;
    eg: 打印所有可以登录系统用户的cron配置信息
    for i in cat /etc/passwd|grep bash |cut -f 1 -d :;do { crontab -u "$i" -l;echo "-----------";echo;echo ;} done

    2.第二种格式
    for i in /bin/ls; do echo test "$i"; done
    注意2个分号的位置;

    3.也可以使用如下方式:
    for i in /bin/ls;do { echo test "$i";echo $i;} done
    for i in /bin/ls;do echo test "$i";echo $i; done
    for i in /bin/ls;do echo test "$i"echo $i;done #两个echo之间没有分号的话,第二个echo会被当成第一个echo的输出执行;
    for i in /bin/ls;do echo test"$i";echo $i;done

    综上,for第一行需要作为独立的执行;do那行也作为独立的执行,do的所有语句可以放在do的同行;在done之前必须有个分号,或者是换行,作为for循环的第三部分,也就是作为结束本轮循环的标志;
    for XXX;do XXX;done
    也就是在shell遇到for字符时候,进行条件判断;遇到do字符,则执行之后的所有循环操作,知道遇到done为止;在do和done之前,如果是单行的for循环,则需要分号分隔,如果是多行,可以用换行来替代分号;
    {}符合可加可不加,如果想看着舒服的话,建议采用C编程风格,这样更容易看些,但作为shell自身而言,不建议加大括号,因为会增加一些语法的解释;

    大括号{}
    大括号执行命令的方式如下:
    { ls -al; } 注意那个分号,没有分号无法执行;

    shell 按行读取 for和while区别
    20140609 Chenxin
    说明:
    for逐行读和while逐行读是有区别的,如:
    $ cat file
    1111
    2222
    3333 4444 5555 #for会将次行作为3个变量处理,而while会作为单个变量处理

    $ cat file | while read line; do echo $line; done
    1111
    2222
    3333 4444 5555

    $ for line in $(<file); do echo $line; done
    1111
    2222
    3333
    4444
    5555

  • 相关阅读:
    java_day12_jdk1.8新特性
    IT修养-基础篇
    selenium之 chromedriver与chrome版本映射表(更新至v2.31)
    selenium--定位--CSS
    敏捷测试--之scrum--原理
    敏捷测试和瀑布测试的关联
    bugfree安装
    Linux
    mysql--命令行创建数据库
    软件测试流程
  • 原文地址:https://www.cnblogs.com/chanix/p/12738129.html
Copyright © 2011-2022 走看看