zoukankan      html  css  js  c++  java
  • Linux Shell编程4

    Linux Shell编程4
    2011-07-19 18:24
    
    For循环for…in…do…done
    
    In后面的变量时迭代变量,每次执行时迭代变量都会选用表达式list中的列出的不同单词。for循环结构与C语言中有所不同,在BASH中for循环的基本结构是:
    
    for var in [list]
    
    do
    
    #code block
    
    done
    
    其中$var是循环控制变量,[list]是var需要遍历的一个集合,do/done对包含了循环体,相当于C语言中的一对大括号。另外如果do和for被写在同一行,必须在do前面加上“;”。如:for $var in [list]; do
    
    例1:
    
    #!/bin/bash
    
    fordayin Sun Mon Tue Wed Thu Fri Sat
    
    do
    
    echo $day
    
    done
    
    例2:如果列表被包含在一对双引号中,则被认为是一个元素
    
    #!/bin/bash
    
    fordayin "Sun Mon Tue Wed Thu Fri Sat“
    
    do
    
    echo $day
    
    done
    
    例3:
    
    #!/bin/bash
    
    for FILE in $*
    
    do
    
    if[ -e $FILE ]
    
    then
    
    chmod 600 $FILE
    
    else
    
    echo “The file $FILE does not exist.”
    
    fi
    
    done
    
    产生迭代列表的常用工具
    
    for i in $*
    	
    
    脚本的命令行参数
    
    for I in /etc/*.conf
    	
    
    与表达式/etc/*.conf相配的文件
    
    for I in $(command)
    	
    
    command命令的输出
    
    例4:
    
    #!/bin/bash
    
    forDIR in $*
    
    do
    
    if [ -d $DIR ]
    
    then
    
    if [ “$DIR” == “.” –o “$DIR” == “..” ]
    
    then
    
    echo “skipping directory $DIR”
    
    else
    
    tar czvf $DIR.tgz $DIR && rm –rf $DIR
    
    fi
    
    else
    
    echo “skipping non directory $DIR”
    
    fi
    
    done
    
    while循环while循环的基本结构是:
    
    while [ condition ]
    
    do
    
    #code block
    
    done
    
    until循环的基本结构是:
    
    until [ condition ]
    
    do
    
    #code block
    
    done
    
    while和until的区别在于while是为真时执行,until是为假时执行
    
    Case语句
    
    BASH中的case结构与C语言中的switch语句的功能比较类似,可以用于进行多项分支控制。
    
    case "$var" in
    
    condition1 )
    
    ;;
    
    condition2 )
    
    ;;
    
    * )
    
    default statments;;
    
    esac
    
    例1:
    
    #!/bin/bash
    
    echo "Hit a key, then hit return."
    
    read Keypress//read内置命令可以从键盘(“标准输入“)读取输入
    
    case "$Keypress" in
    
    [A-Z] ) echo " Uppercase letter";;
    
    [a-z] ) echo " Lowercase letter";;
    
    [0-9] ) echo "Digit";;
    
    * ) echo "Punctuation, whitespace, or other";;
    
    esac


  • 相关阅读:
    最新国家标准下载(2020-7-31)
    SL/T 264-2020 水利水电工程岩石试验规程
    SH/T 3082-2019 石油化工仪表供电设计规范
    GB/T 4780-2020 汽车车身术语
    Java——冒泡排序
    JSP处理XML数据
    JSP标准标签库(JSTL)
    千锤百炼软工第十九天
    千锤百炼软工第十八天
    千锤百炼软工第十七天
  • 原文地址:https://www.cnblogs.com/yuzaipiaofei/p/4124550.html
Copyright © 2011-2022 走看看