文档章节

shell编程-条件判断

海军战士
 海军战士
发布于 2017/05/02 23:57
字数 581
阅读 14
收藏 0

1.按照文件类型进行判断

判断文件是否存在的两种方式:

1.1 使用test进行判断

###判断文件/root/score.txt是否存在
[root@wenhaijin ~]#  test -e /root/score.txt
###打印上一条语句的输出结果,0表示正确执行,否则执行不正确
[root@wenhaijin ~]# echo $?
0
[root@wenhaijin ~]# 

1.2 使用”中括号”进行判断(中括号里面有空格)

###该语句等价于上面的test语句(注意中括号里面有空格)
[root@wenhaijin ~]# [ -e /root/score.txt ]

这两种判断语句的选项如下:

判断目录/root是否存在,存在打印yes,否则打印no
[root@wenhaijin ~]# test -d /root && echo "yes" || echo "no"
yes

###中括号里面是有空格的
[root@wenhaijin ~]#  [ -f /root/score.txt ] && echo "yes" || echo "no"
yes
[root@wenhaijin ~]# 

2. 按照文件权限进行判断

###判断文件是否具有读、写、可执行权限
[root@wenhaijin ~]# [ -r /root/score.txt ]&& echo "yes" || echo "no"
yes
[root@wenhaijin ~]# [ -w /root/score.txt ]&& echo "yes" || echo "no"
yes
[root@wenhaijin ~]# [ -x /root/score.txt ]&& echo "yes" || echo "no"
no
[root@wenhaijin ~]# 

3. 两个文件之间的比较

[root@wenhaijin ~]# ls
91yunserverspeeder         score.txt             tcp_wmem~
91yunserverspeeder.tar.gz  serverspeeder-all.sh  x1.sh
###判断文件/root/score.txt是否比文件/root/tcp_wmem~新
[root@wenhaijin ~]# [ /root/score.txt -nt /root/tcp_wmem~ ] && echo "yes" || echo "no"
yes
###判断文件/root/score.txt是否比文件/root/tcp_wmem~旧
[root@wenhaijin ~]# [ /root/score.txt -ot /root/tcp_wmem~ ] && echo "yes" || echo "no"
no
###判断两个文件是不是采用硬链接形式创建的
[root@wenhaijin ~]# [ /root/score.txt -ef /root/tcp_wmem~ ] && echo "yes" || echo "no"
no

###创建硬链接
[root@wenhaijin ~]# ln /root/score.txt  /tmp/sco.txt
###查看i节点
[root@wenhaijin ~]# ls -i score.txt 
1058319 score.txt
###查看i节点
[root@wenhaijin ~]# ls -i /tmp/sco.txt 
1058319 /tmp/sco.txt
###判断两个文件是不是采用硬链接形式创建的
[root@wenhaijin ~]# [ /root/score.txt -ef /tmp/sco.txt ] && echo "yes" || echo "no"
yes
[root@wenhaijin ~]# 

4. 两个整数之间的比较

[root@wenhaijin ~]# [ 23 -gt 22 ] && echo yes || echo no
yes
[root@wenhaijin ~]# [ 23 -lt 22 ] && echo yes || echo no
no
[root@wenhaijin ~]# 

5.字符串的判断

[root@wenhaijin ~]# name=wenhaijin
###字符串name为空返回yes,不为空返回no
[root@wenhaijin ~]# [ -z "$name" ] && echo yes || echo no
no
[root@wenhaijin ~]# [ -z "$nameaaa" ] && echo yes || echo no
yes
[root@wenhaijin ~]# 

[root@wenhaijin ~]# aa=abc
[root@wenhaijin ~]# bb=abc
[root@wenhaijin ~]# [ "$aa" == "$bb" ] && echo yes || echo no
yes

6.多重条件判断

[root@wenhaijin ~]# aa=11
###aa存在并且aa大于23,则打印yes,否则打印no
[root@wenhaijin ~]# [ -n "$aa" -a "$aa" -gt 23 ] && echo yes || echo no
no

[root@wenhaijin ~]# aa=25
[root@wenhaijin ~]# [ -n "$aa" -a "$aa" -gt 23 ] && echo yes || echo no
yes

 

© 著作权归作者所有

海军战士
粉丝 21
博文 138
码字总数 132831
作品 0
深圳
私信 提问
shell脚本中的逻辑判断,文件目录属性判断,if特殊用法,case语句

笔记内容: 20.5 shell脚本中的逻辑判断 20.6 文件目录属性判断 20.7 if特殊用法 20.8/20.9 case判断 笔记日期:2017-11-22 20.5 shell脚本中的逻辑判断 在所有的编程语言中都会有if语句来进...

ZeroOne01
2017/11/22
0
0
shell编程入门

shell编程入门:linux命令行、重定向、管道;shell变量、shell条件判断、shell流程控制、shell函数 1.linux命令行、重定向、管道 http://my.oschina.net/shw23/blog/688280 2.shell基础 http...

shw23
2016/06/08
56
0
运维的shell小编(5)

第五章、Shell基本语法 5.1shell条件测试 Shell测试有test命令和[]方式,如果结果为0表示正确,否则错误。可以测试文件状态,数值比较,逻辑测试等。 测试文件状态:-f是否为文件,-d是否为目...

wbf961127
2017/11/14
0
0
shell编程之流程控制

1.if    "if" 表达式 如果条件为真则执行then后面的部分: if ....; then   .... elif ....; then   .... else   .... fi 大多数情况下,可以使用测试命令来对条件进行测试。比如可以比...

被使用的文件
2015/11/26
34
0
Shell编程基础 shell的结构、执行及变量

12月27日任务 20.1 shell脚本介绍 20.2 shell脚本结构和执行 20.3 date命令用法 20.4 shell脚本中的变量 shell脚本介绍 shell是一种脚本语言,是一名运维工程师所必需掌握的最基本的能力。通...

robertt15
2018/12/27
0
0

没有更多内容

加载失败,请刷新页面

加载更多

利用mybatis generator生成实体类、Mapper接口以及对应的XML文件

项目中通常会遇到数据的持久化,如果是采用mybatis的orm,就会涉及到生成xml的问题,刚好mybatis官网提供了这么个插件MyBatis Generator,效果简直是棒呆。 1. 首先需要在build.gradle文件中...

啊哈关关
今天
2
0
SpringSocial相关的知识点

使用SprigSocial开发第三方登录 核心类 ServiceProvider(AbstractOauth2ServiceProvider):主要负责实现server提供商(例如QQ,微信等共有的东西),默认实现类是AbstractOauth2ServiceProvider...

chendom
今天
3
0
Java并发之AQS详解

一、概述   谈到并发,不得不谈ReentrantLock;而谈到ReentrantLock,不得不谈AbstractQueuedSynchronizer(AQS)!   类如其名,抽象的队列式的同步器,AQS定义了一套多线程访问共享资源...

群星纪元
昨天
4
0
Fabric-sdk-java最新教程

Fabric Java SDK是Fabric区块链官方提供的用于Java应用开发的SDK,全称为Fabric-sdk-java,网上可用资料不多,本文列出了精心整理的针对Fabric Java SDK的最新精选教程。 如果希望快速掌握F...

汇智网教程
昨天
3
0
react 子组件监听props 变化

componentWillReceiveProps //已经被废弃 getDerivedStateFromProps// 推荐使用//如果条件不存在必须要返回null static getDerivedStateFromProps(props, current_stat...

一箭落旄头
昨天
3
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部