结构化命令 之 复合条件测试

本篇内容均摘自《Linux命令行与shell脚本编程大全》,个人认为需要重点学习的章节。【免费】Linux命令行与Shell脚本编程大全 第3版 PDF全本 21MB 百度网盘下载 - 今夕是何夕 - 博客园
if-then语句允许你使用布尔逻辑来组合测试。有两种布尔运算符可用:
[ condition1 ] && [ condition2 ]
[ condition1 ] || [ condition2 ]
第一种布尔运算使用AND布尔运算符来组合两个条件。要让then部分的命令执行,两个条件都必须满足。第二种布尔运算使用OR布尔运算符来组合两个条件。如果任意条件为TRUE, then部分的命令就会执行。

$ cat test22.sh
#!/bin/bash
if [ -d $HOME ] && [ -w $HOME/testing ]
then
  echo "The file exists and you can write to it"
else
  echo "I cannot write to the file"
fi
$ ./test22.sh
I cannot write to the file
$ touch $HOME/testing
$ ./test22.sh
The file exists and you can write to it

使用AND布尔运算符时,两个比较都必须满足。第一个比较会检查用户的$HOME目录是否存在。第二个比较会检查在用户的HOME目录是否有个叫testing的文件,以及用户是否有该文件的写入权限。如果两个比较中的一个失败了, if语句就会失败, shell就会执行else部分的命令。如果两个比较都通过了,则if语句通过, shell会执行then部分的命令。

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容