shell 测试的&&、or、!

 

测试类型

[] [[]]
数值测试 eq、ne、lt、le、gt、ge、 同[]
字符测试 ==、>、<、!=、=~、不可用(<=、>=)  -z  "string"  -n ""  同[]
文件测试  -# file 存在性测试:  -a FILE、    -e FILE      同[]    
存在性的类型测试:  -b、-c、-d、-f、-h(or -L符号链接)、-p、-s
文件权限测试  -r、-w、-x
 特殊权限测试;  -u、-g、-k
文件是否有内容:  -s 
 时间戳: -N 
从属关系测试:   -O是否为当前用户属主、-G 是否为当前用户数组
 双目测试:  file1 -nt\-ot file2      file1新\旧于file2
   
逻辑测试  -a、-o、!   &&、||、!
数学运算测试   不可用 +、-、*、/、 %、
组合测试

  各逻辑符号链接的文件测试、符号测试、数值(运算)测试

eg:[ -O FILE -a -x FILE ]

 

逻辑运算的执行规则:

-a、-o、!等同于&&、||、!----------->与、或、非

command1 && command2

&&: 如果command1结果为假,则command2不再执行;如果command1为真,则继续执行command2

||:如果command1结果为假,则继续执行command2;如果command1结果为真,则command2不再执行

 

eg:

command1 && command2 || command3

如果command1成功运行,回传$0,运行command2,||得到回传值$0,command3不会运行;
如果command1运行失败,command1 && command2 回传$1,||得到回传值$1,command3运行成功。

posted @ 2019-04-02 15:52  打铁李  阅读(3090)  评论(0编辑  收藏  举报