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


  • 相关阅读:
    互联网+总决赛有感
    PyQt QListWidget修改列表项item的行高
    virtualenv 安装不同版本的虚拟环境的办法
    OpenDayLight Helium实验三 OpenDaylight二层转发机制实验
    OpenDayLight Helium实验一 OpenDaylight的C/S模式实验
    数据结构上机 经典进出栈问题
    【转载】解决telnet无法连接 Connection refused
    【Python初学者】准备
    OpenDayLight Helium安装
    Mininet实验 测量路径损耗率
  • 原文地址:https://www.cnblogs.com/yuzaipiaofei/p/4124551.html
Copyright © 2011-2022 走看看