条件表达式返回的结果都为布尔型shell
真为1,假为0express
[expression]测试
比较符blog
整数比较io
-eq:比较两个整数是否相等,$A -eq $Btest
-ne:测试两个整数是否不等,不等则为真,等则为假变量
-gt:大于为真,小于为假权限
-lt:小于为真,大于为假im
-ge:大于或者等于脚本
-le:小于或者等于
-e File 测试文件是否存在
-f File 测试文件是不是普通文件
-d File 测试指定路径是不是目录
-r File 测试文件是否有写的权限
-w File 测试文件是否有写的权限
-x File测试文件是否有执行的权限
-z:判断指定的变量是否存在值
-n:测试字符是否为空 非空为真(0)
-s:文件的大小非0时为真
!:逻辑非
双目:
== 相等为真
!= 不等为真
> 大于为真
< 小于为真
-a:逻辑与 都为真才为真
-o:逻辑或 一个为真就为真
test expression
expression为条件表达式
if test (表达式为真)
if test !表达式为假
test 表达式1 –a 表达式2 两个表达式都为真
test 表达式1 –o 表达式2 两个表达式有一个为真
!(A -a B)= !A -o !B
!(A -o B)= !A -a !B
&&:逻辑与,都为真则为真
若是第一个条件是真的,须要对第二个条件进行判断
若是第一个条件是假的,不须要对第二个条件进行判断,结果已经肯定为假。
||:逻辑或,一个为真则为真
当第一个条件为真的时候,不在去判断第二条件,由于第一个表达式已经决定了整个表达式为真
只有当第一个表达式为假的时候才回去判断第二个表达式
操做实例:
建立两个文件,一个是普通文件类型,另外一个是文件目录
执行条件表达式
定义一个变量,将文件赋值给变量,而后经过条件表达式判断该文件是否存在 (补充: 使用变量的时候最好是加上双引号 " ")
编辑脚本
若是执行shell脚本时,后面跟着的参数的值 为 3 才能输出3个1,其余则不输出
在修改脚本,将&& 链接符号改为 ||
执行脚本 当只有前面的条件不成立,后面的条件才执行
下面图中的语句 [ -f /etc/host ] && { echo 1; echo 2; echo3 ;}
与之相等价的语句是
if [ 条件 ]
then
执行的命令
命令
fi
这条语句就是条件不成立时候执行的 [ -d /etc/hosts ] || { echo 1;echo 2;echo 3;}