ddddddf 发表于 2018-8-28 08:06:08

关于Shell脚本中条件表达式

  一、文件操作
  1、表达式
  -d:是否为目录
  -f:是否为文件
  -e:文件或目录是否存在
  -r:当前用户是否有读权限
  -w:当前用户是否写权限
  -x:当前用户是否有可执行权限
  2、举例说明(在命令行使用test命令或[])
# test -d /home/oldcat/tools/  
# echo $?
  
0
  
# test -d /home/oldcat/tools/redis-3.0.7.tar.gz
  
# echo $?
  
1
  
# test -f /home/oldcat/tools/redis-3.0.7.tar.gz
  
# echo $?
  
0
  
说明:输出执行结果为0表示真,反之为假
  二、数值比较
  1、表达式
  -eq:两个操作数是否相等
  -ne:两个操作数是否不相等
  -le:左操作数是否小于或等于右操作数
  -ge:左操作数是否大于或等于右操作数
  -lt:左操作数是否小于右操作数
  -gt:左操作数是否大于右操作数
  2、举例说明
# test 1 -eq 2  
# echo $?
  
1
  
# test 1 -eq 1
  
# echo $?
  
0
  
# test 2 -gt 1
  
# echo $?
  
0
  
# test 1 -ge 1
  
# echo $?
  
0
  
说明:输出执行结果为0表示真,反之为假
  三、字符串比较
  1、表达式
  =:两个字符串是否相等
  !=:两个字段串是否不相等
  -z:判断字段串是否为空
  2、举例说明
# test "chenfl" = "chenfL"  
# echo $?
  
1
  
# test "chenfl" != "chenfl"
  
# echo $?
  
1
  
# test "chenfl" = "chenfl"
  
# echo $?
  
0
  
# test -z ""
  
# echo $?
  
0
  
# test -z "chenfl"
  
# echo $?
  
1
  
说明:输出执行结果为0表示真,反之为假
  四、逻辑判断
  1、表达式
  &&:逻辑与,只有前后两个表达式都为真执行结果才为真(0),否则为假(1)
  ||:逻辑或,前后两个表达式只要有一个为真,执行结果为真(0),否则为假(1)
  !:逻辑非,如果表达式的执行结果为真则为假(1),如果表达式的执行结果为假即为真(0)
  2、举例说明
# [ 1 -eq 1 ] && [ "hehe" != "hehe" ]  
# echo $?
  
1
  
# [ 1 -eq 1 ] || [ "hehe" != "hehe" ]
  
# echo $?
  
0
  
# [ ! -d /home/oldcat/tools/ ]
  
# echo $?
  
1
  
说明:输出执行结果为0表示真,反之为假


页: [1]
查看完整版本: 关于Shell脚本中条件表达式