• shell-code-4-运算符


    #1. shell 基本运算符有:算数、关系、布尔、字符串、文件测试运算符
    #2. 原生bash不支持简单的数学运算,可使用awk和expr(最常用)
    echo `expr 1 + 2`
    # 反引号;表达式和运算符之间要有空格,例如 2+2 是不对的
    a=1
    b=2
    # + - * / % = == !=
    echo `expr $a / $b`
    # 乘号(*)前边必须加反斜杠()才能实现乘法运算
    echo `expr $a * $b`
    # 注意空格
    if [ $a != $b ]
    then
    echo "a != b"
    fi

    # 关系运算符只支持数字,不支持字符串,除非字符串的值是数字
    # -eq -ne -gt -lt -ge -le
    if [ $a -lt $b ]
    then
    echo "a < b"
    else
    echo "a > b"
    fi
    # 上面为:if空[空$a空-lt空$b空]
    # 下面报错expr: syntax error,因为返回的是true或者false
    echo `expr $a -eq $b`

    # 布尔运算符:! -o -a
    if [ $a -eq 1 -o $b -lt 3 ]
    then
    echo "a == 1 and b < 3"
    else
    echo "Nooooo"
    fi


    # 逻辑运算符:&&和||
    if [[ $a -eq 1 && $b -lt 3 ]]
    then
    echo "a == 1 and b < 3"
    else
    echo "Nooooo"
    fi

    # 字符串运算符
    # 检验两个字符串是否相等=不相等!=
    # -z长度为0返回true,-n长度为0返回false
    a="aaa"
    b="bb"
    if [ $a != $b ]
    then
    echo a!=b
    fi
    if [ -n $a ]
    then
    echo a.len is not 0
    fi
    # 检验a是不是空串?
    if [ $a ]
    then
    echo a is not white
    fi

    # 文件测试运算符用于检测 Unix 文件的各种属性。
    file="/var/www/runoob/test.sh"
    if [ -r $file ]
    then
    echo "文件可读"
    else
    echo "文件不可读"
    fi

  • 相关阅读:
    NOJ-1581 筷子 (线性DP)
    UVA-242 Stamps and Envelope Size (DP)
    POJ 1860 (SPFA判断正环)
    POJ 3268 最短路水题
    STL----priority_queue
    STL----unique
    POJ 2031(最小生成树Kruskal算法+几何判断)
    POJ 3468(线段树区间修改+区间求和)
    学习线段树
    POJ 1251(最小生成树裸题)
  • 原文地址:https://www.cnblogs.com/pxy7896/p/6418293.html
Copyright © 2020-2023  润新知