zoukankan      html  css  js  c++  java
  • 05Operator

    基本运算符

      a=10
      b=20

    • 算数运算符
      • val=`expr ${a} + ${b}`
        echo "a + b : ${val}" # 30

        val=`expr ${a} - ${b}`
        echo "a - b : ${val}" # -10

        val=`expr ${a} * ${b}`
        echo "a * b : ${val}" # 200

        val=`expr ${b} / ${a}`
        echo "b / a : ${val}" # 2

        val=`expr ${b} % ${a}`
        echo "b % a : ${val}" # 0

        if [ ${a} == ${b} ]
        then
           echo "a 等于 b"
        fi
        if [ ${a} != ${b} ]
        then
           echo "a 不等于 b" #
        fi
    • 关系运算符
      • if [ ${a} -eq ${b} ] # 检测两个数是否相等,相等返回 true。
        then
           echo "${a} -eq ${b} : a 等于 b"
        else
           echo "${a} -eq ${b}: a 不等于 b"
        fi

        if [ ${a} -ne ${b} ] # 检测两个数是否相等,不相等返回 true。
        then
           echo "${a} -ne ${b}: a 不等于 b"
        else
           echo "${a} -ne ${b} : a 等于 b"
        fi

        if [ ${a} -gt ${b} ] # 检测左边的数是否大于右边的,如果是,则返回 true。
        then
           echo "${a} -gt ${b}: a 大于 b"
        else
           echo "${a} -gt ${b}: a 不大于 b"
        fi

        if [ ${a} -lt ${b} ] # 检测左边的数是否小于右边的,如果是,则返回 true。
        then
           echo "${a} -lt ${b}: a 小于 b"
        else
           echo "${a} -lt ${b}: a 不小于 b"
        fi

        if [ ${a} -ge ${b} ] # 检测左边的数是否大于等于右边的,如果是,则返回 true。
        then
           echo "${a} -ge ${b}: a 大于或等于 b"
        else
           echo "${a} -ge ${b}: a 小于 b"
        fi

        if [ ${a} -le ${b} ] # 检测左边的数是否小于等于右边的,如果是,则返回 true。
        then
           echo "${a} -le ${b}: a 小于或等于 b"
        else
           echo "${a} -le ${b}: a 大于 b"
        fi
    • 布尔运算符
      • if [ ${a} != ${b} ] # 非运算,表达式为 true 则返回 false,否则返回 true。
        then
           echo "${a} != ${b} : a 不等于 b"
        else
           echo "${a} != ${b}: a 等于 b"
        fi

        if [ ${a} -lt 100 -o ${b} -gt 100 ] # 或运算,有一个表达式为 true 则返回 true。
        then
           echo "${a} 小于 100 或 ${b} 大于 100 : 返回 true"
        else
           echo "${a} 小于 100 或 ${b} 大于 100 : 返回 false"
        fi


        if [ ${a} -lt 100 -a ${b} -gt 15 ] # 与运算,两个表达式都为 true 才返回 true。
        then
           echo "${a} 小于 100 且 ${b} 大于 15 : 返回 true"
        else
           echo "${a} 小于 100 且 ${b} 大于 15 : 返回 false"
        fi
    • 逻辑运算符
      • if [[ ${a} -lt 100 && ${b} -gt 100 ]] # AND
        then
           echo "返回 true"
        else
           echo "返回 false"
        fi

        if [[ ${a} -lt 100 || ${b} -gt 100 ]] # OR
        then
           echo "返回 true"
        else
           echo "返回 false"
        fi
    • 字符串运算符
      • a="abc"
        b="efg"

        if [ ${a} = ${b} ] # 检测两个字符串是否相等,相等返回 true。
        then
           echo "${a} = ${b} : a 等于 b"
        else
           echo "${a} = ${b}: a 不等于 b"
        fi

        if [ ${a} != ${b} ] # 检测两个字符串是否相等,不相等返回 true。
        then
           echo "${a} != ${b} : a 不等于 b"
        else
           echo "${a} != ${b}: a 等于 b"
        fi

        if [ -z ${a} ] # 检测字符串长度是否为0,为0返回 true。
        then
           echo "-z ${a} : 字符串长度为 0"
        else
           echo "-z ${a} : 字符串长度不为 0"
        fi

        if [ -n ${a} ] # 检测字符串长度是否为0,不为0返回 true。
        then
           echo "-n ${a} : 字符串长度不为 0"
        else
           echo "-n ${a} : 字符串长度为 0"
        fi

        if [ ${a} ] # 检测字符串是否为空,不为空返回 true。
        then
           echo "${a} : 字符串不为空"
        else
           echo "${a} : 字符串为空"
        fi
    • 文件测试运算符
      • file="/home/donny/test.sh"

        if [ -r $file ] # 检测文件是否可读,如果是,则返回 true。
        then
           echo "文件可读"
        else
           echo "文件不可读"
        fi

        if [ -w $file ] # 检测文件是否可写,如果是,则返回 true。
        then
           echo "文件可写"
        else
           echo "文件不可写"
        fi

        if [ -x $file ] # 检测文件是否可执行,如果是,则返回 true。
        then
           echo "文件可执行"
        else
           echo "文件不可执行"
        fi

        if [ -f $file ] # 检测文件是否是普通文件,如果是,则返回 true。
        then
           echo "文件为普通文件"
        else
           echo "文件为特殊文件"
        fi

        if [ -d $file ] # 检测文件是否是目录,如果是,则返回 true。
        then
           echo "文件是个目录"
        else
           echo "文件不是个目录"
        fi

        if [ -s $file ] # 检测文件是否为空(文件大小是否大于0),不为空返回 true。
        then
           echo "文件不为空"
        else
           echo "文件为空"
        fi
        if [ -e $file ]
        then
           echo "文件存在"
        else
           echo "文件不存在"
        fi
  • 相关阅读:
    51单片机按键连击
    未知设备号创建设备节点
    C语言中enum的用法
    linux 端口IO操作
    读写控制台记录级别
    linux内核驱动中读写函数
    使用gawk记录一段时间内,某个进程占用内存和CPU的情况
    <Linux> Ubuntu error: ssh: connect to host master port 22: No route to host lost connection
    MapReduce的分区与 分组二次排序
    问题
  • 原文地址:https://www.cnblogs.com/DowneyJr/p/7657463.html
Copyright © 2011-2022 走看看