zoukankan      html  css  js  c++  java
  • shell编程中的控制判断语句

    if

    • 单格式与嵌套
    if 条件表达式;then #当条件为真时执行以下语句  
      命令列表  
    else #为假时执行以下语句  
      命令列表  
    fi
    
    if 语句也可以嵌套使用  
    if 条件表达式1;then  
        if 条件表达式2;then  
            命令列表  
        else  
            if 条件表达式3;then  
                命令列表  
            else  
                命令列表  
            fi  
        fi  
    else  
    命令列表  
    fi 
    • 多分支格式
    if test -f "$1"  ;then  
      lpr $1  
    elif test -d "$1";then #elif 同else if  
      (cd $1;lpr $1)  
    else  
    echo "$1不是文件或目录"  
    fi

    case

    case $newval in
    1)          #这里是可能值1
    echo 1
    ;;      #表示第一个分支结束
    2)           #这里是可能值 2
    echo 2
    ;;      #第二个分支结束
    *)      #表示其他可能值,必须在最后,否则他后面的语句无法执行
    echo unkown
    esac    #case 语句结束

    while /until

    while 表达式
    do
      命令列表
    done 
    Sum=0  
    i=0  
    while true #true是系统的关键词 表示真  
    do  
      i=`expr $i + 1`  
      Sum=`expr $Sum + $i`  
      if [ $i = "100" ]; then 
        break;  
      fi  
    done  
    echo $i $Sum  
    最后这个程序显示的是 100 5050  

    下面将这个程序再改动一下  

    Sum=0  
    i=0  
    while [ $i != "100" ]  
    do  
      i=`expr $i + 1`  
      Sum=`expr $Sum + $i`  
    done  
    echo $i $Sum  
    改动后的程序运算结果和上面是一样 但程序比上面的要简练  
    在这个循环中还可以以until做为测试条件 它正好与while测试的条件相反,也就是当条件为假时将继续执行循环体内的语句,否则就退出循环体,下面还用这个例子.  
    Sum=0  
    i=0  
    until [ $i = "100" ]  
    do  
      i=`expr $i + 1`  
      Sum=`expr $Sum + $i`  
    done  
    echo $i $Sum  
    当i不等于100时循环 就是当条件为假时循环,否则就退出,而第一个例子是当i不等于100  
    时循环,也就是测试条件为真时循环.  

    for

    • 枚举用法
    for 变量 in 名字列表  
    do  
      命令列表  
    done 
    for n in {1..10}
    do
      echo $n
    done
    
    for letter in a b c d e;
    do
      echo $letter
    done
    •   文件用法 
    for file in *
    do
           echo $file
    done
    for File in a1 a2 a3 a4 a5  
    do  
      diff aa/$File bb/$File  
    done 
    •    累加格式
    for (( i=1;$i<10;i++ ))
    do
      echo $i
    done 
    
    for(( i=1;$i<10;i=$[`expr $i + 1`] ))
    do
      echo $i
    done

    其他循环控制语句

    break 命令不执行当前循环体内break下面的语句从当前循环退出.  
    continue 命令是程序在本循体内忽略下面的语句,从循环头开始执行.
     

    判断文件的属性  

    格式:-操作符 filename  
    
    -e 文件存在返回1, 否则返回0  
    -r 文件可读返回1,否则返回0  
    -w 文件可写返回1,否则返回0  
    -x 文件可执行返回1,否则返回0  
    -o 文件属于用户本人返回1, 否则返回0  
    -z 文件长度为0返回1, 否则返回0.  
    -f 文件为普通文件返回1, 否则返回0  
    -d 文件为目录文件时返回1, 否则返回0  

    测试字符串  

    字符串1 = 字符串2     当两个字串相等时为真  
    字符串1 != 字符串2     当两个字串不等时为真  
    -n 字符串           当字符串的长度大于0时为真  
    -z 字符串         当字符串的长度为0时为真  
    字符串           当串字符串为非空时为真 

    测试两个整数关系 

    数字1 -eq 数字2     两数相等为真  
    数字1 -ne 数字2     两数不等为真  
    数字1 -gt 数字2     数字1大于数字2为真  
    数字1 -ge 数字2      数字1大于等于数字2为真  
    数字1 -lt 数字2      数字1小于数字2为真  
    数字1 -le 数字2      数字1小于等于数字2为真  

    逻辑测试  

    -a         与  
    -o        或  
    !        非
  • 相关阅读:
    XMLhttp.status返回值及xmlhttp.readState值
    移动端meta设置
    css自定义checkbox样式
    base.css(css基础样式)
    css文本块中首行文本的缩进,字间距
    jq里的 ajax( ) 方法
    小程序 背景图在开发工具上显示,但是在真机调试时无效
    小程序登陆锁-登录逻辑
    背景图尺寸(background-size)
    动态渲染style 背景图片
  • 原文地址:https://www.cnblogs.com/sunada2005/p/7726192.html
Copyright © 2011-2022 走看看