zoukankan      html  css  js  c++  java
  • Shell 运算符 if

    Shell 支持多种运算符,包括:

    • 算术运算符

    原生bash不支持简单的数学运算,可以使用 expr,let

    • 关系运算符
    • 布尔运算符
    • 字符串运算符
    • 文件运算符

    算术运算符

    包括加减乘除,取余(%)、赋值(=)、相等(==)、不相等(!=)

    #!/bin/bash
    
    ## 定义变量,并赋值
    var1=`expr 1 + 2`
    var3=$(expr 1 + 2)
    ## 打印变量
    echo "var1 is: ${var1}"
    echo "var3 is: ${var3}"
    
    ## 定义变量,并赋值
    let var2=1+2
    ## 打印变量
    echo "var2 is: ${var2}"

    说明:

    1. 使用反引号 ` ,在Esc键下面,获取表达式计算结果
    2. 使用$() 获取表达式计算结果
    3. 使用expr :表达式和运算符之间要有空格,必须写成 1 + 2 
    4. 使用let: 表达式和运算符之间不能有空格,必须写成 1+2
    5. 乘号(*) 必须使用反斜杠() 进行转义
    6. 大括号 {},小括号 (), 大于 >,小于 <, 也需要使用反斜杠() 进行转义。如果解析错误,先排查下特殊符号,是否需要转义。

    关系运算符

    关系运算符只支持数字,不支持字符串(纯数字除外)

    -eq : 检测左右两边的数是否相等,相等返回true

    -ne : 检测左右两边的数是否不等

    -gt : 类似大于

    -lt : 类似小于

    -ge : 类似大于等于

    -le : 类似小于等于

    布尔运算符

    ! : 非运算

    -o : 或运算

    -a : 与运算

    && : 逻辑的and ,与-a 类似

    || :逻辑的or ,与 -o 类似

    字符串运算符

    = or ==: 检测左右两边字符串是否相等,相等返回true。  if [ "$a" = "$b" ]  与  if [ "$a" == "$b" ] 等价。

    != : 检测左右两边字符串是否不相等,不相等返回true

    > or < :使用双括号或者转义。  if [ "$a" > "$b" ]  或者  if [[ "$a" > "$b" ]]  

    -z : 检测空串,长度为0时 ,返回true

    -n :检测非空串,长度不为0时,返回true

    文件运算符

    -f file : 检测文件是否是 普通文件(既不是目录,也不是设备文件)

    -d file :检测文件是否是 目录

    -r file :检测文件是否可读

    -w file :检测文件是否可写

    -x file :检测文件是否可执行

    -s file :检测文件是否为空

    -e file :检测文件(包括目录)是否存在

  • 相关阅读:
    Struts初探(二)
    struts2初探(一)
    css样式表设置
    css美化Div边框的样式实例
    CSS中background样式的repeat和no-repeat
    嘘,如何激活更新的win10
    学习向上转型和向下转型的一个好例子
    atom插件安装引发的nodejs和npm安装血案
    Java--Inheritance constructor继承中的构造方法问题(二)
    Java--Inheritance constructor继承中的构造方法问题(一)
  • 原文地址:https://www.cnblogs.com/kimbo/p/6362881.html
Copyright © 2011-2022 走看看