设为首页 - 加入收藏 ASP站长网(Aspzz.Cn)- 科技、建站、经验、云计算、5G、大数据,站长网!
热搜: 数据 创业者 手机
当前位置: 首页 > 服务器 > 系统 > 正文

怎么在 bash 脚本中使用 test 命令

发布时间:2022-11-23 10:00 所属栏目:52 来源:互联网
导读:如果命令或表达式有效,则 test 命令返回0,否则返回1。 使用 test 命令 test 命令的基本语法如下所示: 复制 test var1 operator var2 1. 如果其中用到了变量,需要在变量名中使用双引号。 我们看下面的例子,使用 test 命令检查10是否等于20,以及10是否等
  如果命令或表达式有效,则 test 命令返回0,否则返回1。
 
  使用 test 命令
  test 命令的基本语法如下所示:
 
  复制
  test “var1” operator “var2”
  1.
  如果其中用到了变量,需要在变量名中使用双引号。 我们看下面的例子,使用 test 命令检查10是否等于20,以及10是否等于10:
 
  复制
  $ test 10 -eq 20 && echo "true" || echo "false"
  1.
  上面的命令中:
 
  test - test 命令
  10 - 第一个变量
  -eq - 比较运算符
  20 - 第二个变量
  如果给定的表达式有效,则执行第一个命令,否则执行第二个命令。 在上述测试命令中,可以使用方括号 [] 来代替 test 命令。不过有一点需要记住,[ 标记和要比较的变量之间需要有空格:
 
  复制
  [ 10 -eq 20 ] && echo "true" || echo "false"
  1.
 
 
  除了整数以外,也可以在 bash 中使用 test 命令比较字符串,下面我们来看一些例子。
 
  使用 test 命令比较字符串
  检查字符串是否不为空
  -n 选项用于检查字符串长度是否为非零。如果字符串不为空则返回 true,如果字符串为空,则返回 false:
 
  复制
  $ [ -n "sam" ] && echo "True" || echo "False"
  1.
 
 
  检查字符串是否为空
  -z 选项用于检查字符串长度是否为零。如果字符串长度为零,则返回true,否则返回false:
 
  复制
  $ [ -z "sam" ] && echo "True" || echo "False"
  1.
  检查字符串是否相等
  “=”运算符检查string1是否等于string2。如果两个字符串相等,则返回0;如果两个字符串不相等,则返回1:
 
  复制
  $ [ "sam" = "SAM" ] && echo $? || echo $?
  1.
  在这里,表达式略有不同。stdout 变量打印使用 $? 而不是 true 或 false。
 
  检查字符串是否不相等
 
  !=运算符检查 String1 是否不等于 String2。如果这两个字符串不相等,则返回0。如果两个字符串相等,则它返回1:
 
  复制
  [ "abc" != "ABC" ] && echo $? || echo $?
  1.
 
 
  test 命令比较整数
  检查数字是否相等
  -eq 选项检查两个整数是否相等,如果相等返回0,否则返回1:
 
  复制
  [ 10 -eq 20 ] && echo $? || echo $?
  1.
  检查数字是否不相等
  -ne 选项检查两个整数是否不相等,如果不相等返回0,否则返回1:
 
  复制
  [ 10 -ne 20 ] && echo $? || echo $?
  1.
  检查一个数字是否大于等于另一个
  选项 -ge 用于检查整数1 是否大于等于整数2,如果是则返回0,否则返回1:
 
  复制
  [ 100 -ge 10 ] && echo $? || echo $?
  1.
  -gt 运算符检查整数1是否大于整数2。如果是,则返回0。否则,返回1:
 
  [ 20 -gt 10 ] && echo $? || echo $?
 
  检查一个数字是否小于等于另一个
  -le 运算符检查整数1是否小于或等于整数2。如果为真,则返回0,否则返回1:
 
  复制
  [ 5 -le 10 ] && echo $? || echo $?
  1.
  -lt 运算符检查整数1是否小于整数2。如果整数1小于整数2,则返回0,否则返回1:
 
  复制
  [ 5 -lt 10 ] && echo $? || echo $?
  1.
 
 
  test 命令与文件和目录操作
  test 命令还可用于文件和目录,下面我们来看几个例子。 下面的命令用于检查文件对于当前用户是否可执行,如果可执行,返回0,否则返回1:
 
  复制
  [ test -x filename ] && echo executable || echo non-executable
  1.
  也可以相同的方式检查文件的其他权限,比如 r 和 w。在此可使用的其他常用参数包括:
 
  命令
 
  描述
 
  -e
 
  目录/文件是否存在
 
  -f
 
  是否为文件
 
  -d
 
  是否为目录
 
  -s
 
  文件大小是否大于0
 
  -L
 
  是否为符号链接
 
  -S
 
  是否为套接字(socket)
 
  在 bash 脚本中使用 test 命令
  上面的例子我们是使用的一行代码做的演示,除此以外,我们还可以在 bash 脚本中使用 test 命令以及 if else 分支条件。 下面我们来看一个简单的例子,传递参数用于比较两个数字:
 
  复制
  #!/bin/bash
  ## Check if the numbers are equal or not
  read -p "Enter the first number: " num1
  read -p "Enter the second number: " num2
  if test "$num1" -eq "$num2"  
  then
     echo "$num1 is equal to $num2"
  else
     echo "$num1 is not equal to $num2"
  fi

(编辑:ASP站长网)

    网友评论
    推荐文章
      热点阅读