test的兄弟,中括号的条件测试

前面介绍了使用test命令和$?返回值来判断文件的各种各样的属性,其实它还有一个兄弟-中括号,也能实现与test相同的功能,快来看看吧!

  • 注意点:中括号前后必须有前后的空格,不然会报错
  • 条件测试中使用变量,必须添加双引号
[ -n "$filename" ]
  • 可以 使用连接符并行判断:&&  ||
# 判断一个文件是否存在,存在就打印ok
[root@blog ~]# [ -f 1.txt ] && echo "ok"
ok
[root@blog ~]# rm 1.txt 
rm: remove regular empty file '1.txt'? y
[root@blog ~]# [ -f 1.txt ] && echo "ok"
[root@blog ~]

1.-f 更严谨的创建文件

比如,我们仅想要在文件不存在的时候创建一个文件

[ -f 2.txt ] && echo "文件已经存在" || touch 2.txt  

执行结果

[root@blog ~]# [ -f 2.txt ] && echo "文件已经存在" || touch 2.txt  
[root@blog ~]# [ -f 2.txt ] && echo "文件已经存在" || touch 2.txt  
文件已经存在
[root@blog ~]

2.-d 判断目录

判断/tmp目录是否存在

[ -d /tmp ] && echo ok

运行结果:

[root@blog ~]# [ -d /tmp ] && echo ok
ok
[root@blog ~]

3.双中括号[[ 条件表达式 ]]

  • 对权限部分的学习,不要使用root账户,请使用普通账户测试
# 中括号其实和双中括号功能一样
[ -r 3.txt ] && cat 3.txt || echo "没有权限" 
[[ -r 3.txt ]] && cat 3.txt || echo "没有权限" 

执行结果:

[zounan@blog ~]$ echo "yunweizeichuan" > 3.txt
[zounan@blog ~]$ chmod -r 3.txt 
[zounan@blog ~]$ [ -r 3.txt ] && cat 3.txt || echo "没有权限" 
没有权限
[zounan@blog ~]$ [[ -r 3.txt ]] && cat 3.txt || echo "没有权限" 
没有权限
[zounan@blog ~]$ 

尾巴

其实中括号条件判断与test所用的选项一样,只是比test更加简洁,根据不同人的习惯,各有侧重,根据自己的习惯选择即可。

推荐阅读:

  1. 整理收藏:shell中的test条件测试,脚本开发必会

  2. 运维必会神技能:轻松解决rpm软件包的依赖问题

  3. MariaDB 在Linux下的安装部署


原文始发于微信公众号(运维贼船):test的兄弟,中括号的条件测试

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/177347.html

(0)
小半的头像小半

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!