关于Shell脚本中条件表达式
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于Shell脚本中条件表达式相关的知识,希望对你有一定的参考价值。
一、文件操作
1、表达式
-d:是否为目录
-f:是否为文件
-e:文件或目录是否存在
-r:当前用户是否有读权限
-w:当前用户是否写权限
-x:当前用户是否有可执行权限
2、举例说明(在命令行使用test命令或[])
[[email protected] ~]# test -d /home/oldcat/tools/ [[email protected] ~]# echo $? 0 [[email protected] ~]# test -d /home/oldcat/tools/redis-3.0.7.tar.gz [[email protected] ~]# echo $? 1 [[email protected] ~]# test -f /home/oldcat/tools/redis-3.0.7.tar.gz [[email protected] ~]# echo $? 0 说明:输出执行结果为0表示真,反之为假
二、数值比较
1、表达式
-eq:两个操作数是否相等
-ne:两个操作数是否不相等
-le:左操作数是否小于或等于右操作数
-ge:左操作数是否大于或等于右操作数
-lt:左操作数是否小于右操作数
-gt:左操作数是否大于右操作数
2、举例说明
[[email protected] ~]# test 1 -eq 2 [[email protected] ~]# echo $? 1 [[email protected] ~]# test 1 -eq 1 [[email protected] ~]# echo $? 0 [[email protected] ~]# test 2 -gt 1 [[email protected] ~]# echo $? 0 [[email protected] ~]# test 1 -ge 1 [[email protected] ~]# echo $? 0 说明:输出执行结果为0表示真,反之为假
三、字符串比较
1、表达式
=:两个字符串是否相等
!=:两个字段串是否不相等
-z:判断字段串是否为空
2、举例说明
[[email protected] ~]# test "chenfl" = "chenfL" [[email protected] ~]# echo $? 1 [[email protected] ~]# test "chenfl" != "chenfl" [[email protected] ~]# echo $? 1 [[email protected] ~]# test "chenfl" = "chenfl" [[email protected] ~]# echo $? 0 [[email protected] ~]# test -z "" [[email protected] ~]# echo $? 0 [[email protected] ~]# test -z "chenfl" [[email protected] ~]# echo $? 1 说明:输出执行结果为0表示真,反之为假
四、逻辑判断
1、表达式
&&:逻辑与,只有前后两个表达式都为真执行结果才为真(0),否则为假(1)
||:逻辑或,前后两个表达式只要有一个为真,执行结果为真(0),否则为假(1)
!:逻辑非,如果表达式的执行结果为真则为假(1),如果表达式的执行结果为假即为真(0)
2、举例说明
[[email protected] ~]# [ 1 -eq 1 ] && [ "hehe" != "hehe" ] [[email protected] ~]# echo $? 1 [[email protected] ~]# [ 1 -eq 1 ] || [ "hehe" != "hehe" ] [[email protected] ~]# echo $? 0 [[email protected] ~]# [ ! -d /home/oldcat/tools/ ] [[email protected] ~]# echo $? 1 说明:输出执行结果为0表示真,反之为假
以上是关于关于Shell脚本中条件表达式的主要内容,如果未能解决你的问题,请参考以下文章