1.文件测试表达式的用法
我们在编程时处理一个对象时,需要对对象进行测试,只有符合要求的才采取操作处理;这样做的好处是避免程序出错以及无所畏的消耗系统资源,这个测试的对象可以是文件、字符串、数字等。
下表为常用文件操作符
![2e212f139688463e6a88f40659c1d591.png](https://i-blog.csdnimg.cn/blog_migrate/1bce07a469174cc4b2ab66db0b1cb4a1.jpeg)
特别说明:这些操作符对于[[ ]]、[]、test几乎是通用的,更多的操作可以用man test 查看。上表中的-e只要是有文件就行不管是文件还是目录。
![b0fae11a348a45feee8923734c67b431.png](https://i-blog.csdnimg.cn/blog_migrate/c49f007c60d2109c80a52c315380d8fa.jpeg)
2.文件测试表达式举例
2.1 普通文件(测试文件类型)
![6ff47116c5c701bdb5df40fb1ffb6442.png](https://i-blog.csdnimg.cn/blog_migrate/bdc9ed0964c84635ef395fe552588bc1.jpeg)
2.2 目录文件(测试文件类型)
![51f6eb7be5025aa6fb6da675cac3a728.png](https://i-blog.csdnimg.cn/blog_migrate/f5d2878014606a2e27701fabb4d7b607.jpeg)
2.3 测试文件属性
![0c5dec95de378be0161cc388dec6e9c2.png](https://i-blog.csdnimg.cn/blog_migrate/d3c6dad1b63c26c0aec51b4882c4be31.jpeg)
2.4 测试shell变量举例
在测试变量的时候,测试的内容必须加双引号
![0c92910f139fe98fdf7b253d23767c28.png](https://i-blog.csdnimg.cn/blog_migrate/ce58d9593dfa9ac34a8278bf5976053e.jpeg)
特殊例子:如果变量不加双引号,测试结果可能不正确
![db536d8de06858b77a58ef77c77d407f.png](https://i-blog.csdnimg.cn/blog_migrate/ec2b8c08f8d48d17a6601e04a7c463d6.jpeg)
3.生产环境系统nfs启动脚本的条件测试内容
可以查看/etc/init.d/rpcbind下的条件测试内容,这里就不列出了。学习shell编程多学系统脚本。
4.最高效的文件判断例子
在做测试判断时,不一定非要按照前面的方法,直接用后者做测试判断优势更简洁如:
![fff125c690bb45ee231f403358b09a3d.png](https://i-blog.csdnimg.cn/blog_migrate/3a23f53fb92ab9315783a85acfde6f75.jpeg)
5.文件测试表达式判断条件后面执行多条命令语句案例
用法:
[ 条件 ]&&{
命令1
命令2
命令 3
………
}
示例:
![80fef174d3386059e203a967a8372a44.png](https://i-blog.csdnimg.cn/blog_migrate/fb30586589fbdec0ed5a4d9823d76c84.jpeg)
也可以这样写,将里面的多个命令用分号分开写在一行
![052bfc4ab6c886d1a18f1473542894ff.png](https://i-blog.csdnimg.cn/blog_migrate/4472b67eba323940d0ab50a3f4d3e0e2.jpeg)