shell测试语句和表达式

测试语句

test 条件表达式
[ 条件表达式 ]
格式注意:
    以上两种方法的作用完全一样,后者为常用。
    但后者需要注意方括号[、]与条件表达式之间至少有一个空格。
    test跟 [] 的意思一样
    条件成立,状态返回值是0
    条件不成立,状态返回值是1
操作注意:
    []两侧要有空格,表达式中的符号左右要有空格
    
    root@ubuntu:~# [ 1 = 1 ]
    root@ubuntu:~#  echo $?
    0
    root@ubuntu:~#  test 1 = 1
    root@ubuntu:~#  echo $?
    0

条件表达式

  • 逻辑表达式
     常见的逻辑表达式有: &&  和  ||   # 雷同C 语言中 && 和||
    
  • 文件表达式
    -f        判断输入内容是否是一个文件
        # [ -f weizhi.sh ] && echo "是一个文件"
        是一个文件
        # [ -f weizhi.sddh ] || echo "不是一个文件"
        不是一个文件
    -d        判断输入内容是否是一个目录
        # [ -d weizhi.sddh ] || echo "不是一个目录"
        不是一个目录
        # mkdir nihao
        # [ -d nihao ] && echo "是一个目录"
        是一个目录
    -x        判断输入内容是否可执行 
        # [ -x age.sh ] || echo "文件没有执行权限"
        文件没有执行权限
        # [ -x test.sh ] && echo "文件有执行权限"
        文件有执行权限
    

数值操作符

主要根据给定的两个值,判断第一个与第二个数的关系,如是否大  于、小于、等于第二个数。常见选项如下:
n1 -eq n2            相等
n1 -ge n2            大于或等于
n1 -gt n2            大于
n1 -le n2            小于等于
n1 -lt n2            小于
n1 -ne n2            不等于

字符串比较

str1 == str2            str1和str2字符串内容一致
str1 != str2            str1和str2字符串内容不一致,!表示相反的意思

计算表达式

定义:
    计算表达式,简单来说就是对具体的内容进行算数计算
格式:
  方式一:      $(())       $(( 计算表达式 ))
  方式二:      let             let 计算表达式
注意:$(())中只能用+-*/和()运算符,并且只能做整数运算
$(())演示效果
  格式:     a=$((变量名a+1))
注意:
    表达式范围内,空格不限制
计算示例
      root@ubuntu:~# echo $((100/5))
      20
let演示效果
  格式:let    变量名a=变量名a+1
注意:
    表达式必须是一个整体,中间不能出现空格等特殊字符
let示例
    root@ubuntu:~# i=1
    root@ubuntu:~# let i=i+7
    root@ubuntu:~# echo $i
    8

你可能感兴趣的:(shell测试语句和表达式)