fggweert 发表于 2015-5-22 10:17:12

bash之运算、测试、if语句及for循环语句

一、逻辑运算
      布尔运算:真、假
      与运算:
                真 && 真 = 真
                真 && 假 = 假
                假 && 真 = 假
                假 && 假 = 假
      或运算:
                真 || 真 = 真
                真 || 假 = 真
                假 || 真 = 真
                假 || 假 = 假
      非运算:
                非真 = 假
                非假 = 真
二、状态返回值
      echo $?
      成功:则返回0
      失败:则返回1-255,失败不等于假
      自定义:exit
三、算数运算
      1、定义整形变量
            let VAR_NAME=INTEGER_VALUE
            declare -i VAR_NAME=INTEGER_VALUE
            如果没有定义整形变量,字符型数字会被bash执行隐士类型转换参与算数运算
      2、运算方式
            let VAR_NAME=ARITHMATIC_EXPRESSION
            VAR_NAME=$[ ARITHMATIC_EXPRESSION ]
            VAR_NAME=$(( EXPRESSION ))
            VAR_NAME=$( expr EXPRESSION )
      3、算数运算符
            +、-、*、/、%、**、+=、-+、、*=、/=、%=、++
四、比较运算测试
      1、整形比较测试
            -gt:大于
            -lt:小于
            -ge:大于等于
            -le:小于等于
            -eq:等于
            -ne:不等于
      2、字符串比较测试,根据ASCLL码大小比较字符串
            双目运算符:
                >:   
                <:
                >=:
                <=:
                ==:
                !=:
                =~:模式匹配,[[ "$VAR" =~ PATTERN ]]
            单目运算符:
                -n String:是否不空,不空则为真,空则为假
                -z String:是否为空,空则为真,不空则为假
      3、文件比较测试
                -a/-e FILE:存在则为真,否则则为假
                -f FILE:存在且为普通文件则为真,否则为假
                -d FILE:存在且为目录文件则为真,否则为假
                -s FILE:存在且为非空文件则为真,否则为假
                -r FILE:存在且为可读文件则为真,否则为假
                -w FILE:存在且为可写文件则为真,否则为假
                -x FILE:存在且为可执行文件则为真,否则为假
                -L/-h:存在且为符号链接文件则为真,否则为假
                -b FILE:存在且为块设备则为真,否则为假
                -c FILE:存在且为字符设备则为真,否则为假
                -S FILE:存在且为Socket套接字文件则为真,否则为假
                FILE1 -nt FILE2:FILE1的mtime新于FILE2则为真,否则为假
                FILE1 -ot FILE2:FILE1的mtime旧于FILE2则为真,否则为假
五、测试方式
      1、test EXPR
      2、[ EXPR ]
      3、[[ EXPR ]]
      测试比较通常只在同一种类型间进行
六、for循环语句
      说明:遍历有限的元素列表,语句在同一行用;分隔
      语法:
            for VAR_NAME in LIST
            do
                  循环体
            done
      LIST:列表,中间包括一个或多个元素
      退出条件:遍历结束
七、if条件语句

            单分支if语句:

                if 测试条件;then
                  选择分支
                fi

            双分支if语句:

                if 测试条件;then
                  选择分支1
                else
                  选择分支2
                fi

             多分支if语句:

                if 测试条件1;then
                  选择分支1
                elif 测试条件2;then
                  选择分支2
                elif 测试条件2;then
                  选择分支3
                ...
                elif 测试条件n;then
                  选择分支n
                else
                  选择分支{n+1}
                fi



页: [1]
查看完整版本: bash之运算、测试、if语句及for循环语句