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

本篇内容均摘自《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部分的命令。

你可能感兴趣的:(结构化命令 之 复合条件测试)