zoukankan      html  css  js  c++  java
  • Shell脚本笔记(八)循环

    循环

    一、whlie和until循环

    while循环基本语法:

    while <条件表达式>
    do 
        指令
    done
    #注意代码缩进

    util循环基本语法:

    until <表达式>
    do
        指令
    done
    #与while的区别:不成立时进入循环,成立时终止循环

    注意while条件表达式跟if的区别:if后的表达式是形如'[ a -eq b ]'这样的表达式,此时返回0为真,while后跟(( a < b)),返回1时为真。

    # !/bin/bash
    sum=1000
    i=15
    while ((sum>i))  #正确
    do
        ((sum=sum-i))
        echo "The sum now is $sum"
    done
    echo "The money is less than $i pls add it"
    # !/bin/bash
    sum=1000
    i=15
    while [ $sum -gt $i ] #错误的写法
    do
        ((sum=sum-i))
        echo "The sum now is $sum"
    done
    echo "The money is less than $i pls add it"

    使用while按行读文件:

    方法一:

    exec <FILE
    sum=0
    while read line
    do
        echo $line
    done

    方法二:使用cat读文件

    cat filePath | while read line
    do 
        cmd
    done

    方法三:结尾重定向

    while read line
    do
        cmd
    done<$1

    二、for与select循环

    for循环语法:

    语法一:

    for 变量名 in 变量取值列表
    do
       cmd
    done

    注意:"in 变量取值列表"可以省略,省略时相当于"in $@"

    语法二(与C语言相识):

    for((expr1;expr2;expr3))
    do
        cmd
    done

    例子:

    for num in 5 4 3 2 1
    do
        echo $num
    done

    等同于

    for num in {5..1}
    do
        echo $num
    done

    批量更改当前目录下的文件名:

    # !/bin/bash
    for n in `ls`
    do
        mv $n `echo $n|cut -d . -f1`.gif
    done

    select 循环语句主要用来打印菜单

    # !/bin/bash                       
    select name in tang jia pi 777 bear
    do                                 
        echo $name                     
    done                               

    in后面也可以接命令结果或者数组

     

    Simple is important!
  • 相关阅读:
    2014年10月10号——数据类型之间的转换
    2014年10月9日——语言基础2
    2014年10月9日——语言基础1
    2014年10月8日——进制转换
    js
    SQL的数据类型
    SQL,学习基础2
    SQL数据库的备份和恢复
    用java调用oracle存储过程总结(转)
    用JAVA调用Mysql数据库,数据存储过程的封装与调用;
  • 原文地址:https://www.cnblogs.com/Shadowplay/p/9264052.html
Copyright © 2011-2022 走看看