Linux 条件判断
1. 按照文件类型判断
-b 文件 #判断文件是否存在,并且是设备文件
-c 文件 #判断文件是否存在,并且是字符设备文件
-d 目录 #判断目录是否存在,并且是否为目录(是目录返回真)
-e 文件 #判断文件是否存在
-f 文件 #判断文件是否存在,并且是否是普通文件
-L 文件 #判断文件是否存在,并且是否为符号链接文件
-p 文件 #判断该文件是否存在,并且是否为管道文件
-s 文件 #判断文件是否存在,并且是否非空(非空为真)
-S文件 #判断文件是否存在,并且是否为套接字文件
使用方式1:
test -e a.txt;echo $? #其中test -e a.txt;是判断文件a.txt是否存在,echo $?是用来查询上一个命令的执行结果,结果为0表示执行成功否则失败。
使用方法2:
[ -e a.txt ];echo $? #注意:[]里边的两头必须有空格
通常获取判断结果的方式为:
[ -e a.txt ] && echo "yes" || echo "no"
2. 按照问价权限进行判断
-r 文件 #判断文件是否存在,且具有读权限
-w 文件 #判断文件是否存在,且具有写权限
-x 文件 #判断文件是否存在,且有执行权限
-u 文件 #判断文件是否存在,且有SUID权限
-g 文件 #判断文件是否存在,且有SGID权限
-k 文件 #判断文件是否存在,且具有SBit权限
举例:[ -w /root/a.txt ] && echo "yes" || echo "no"
3. 两个文件之间进行比较
文件1 -nt 文件2 #判断文件1的修改时间是否是比文件2的新(如果新返回真)
文件1 -ot 文件2 #判断文件1的修改时间是否比文件2的修改时间旧(如果文件1的旧则返回真)
文件1 -ef 文件2 #判断文件1和文件2的Inode号是否一致,可以理解为两个文件是否为同一文件。每个文件都有唯一的Inode号。这个判断可以用于判断硬链接的很好方法。
4. 两个整数之间的比较
整数1 -eq 整数2 #判断整数1和整数2是否相同
整数1 -ne 整数2 #判断整数1和整数2是否不相等(不相等位置)
整数1 -gt 整数2 #判断整数1是否大于整数2
整数1 -lt 整数2 #判断整数1是否小于整数2
整数1 -ge 整数2 #判断整数1是否大于等于整数2
整数1 -le 整数2 #判断整数1是否小于等于整数2
5. 字符串的判断
-z 字符串 #判断是否为空(为空返回真) 例如:[ -z "$name" ]
-n 字符串 #判断是否串是否非空(非空返回真)
字符串1 == 字符串2 #判断字符串1是否和字符串2相等
字符串1 != 字符串2 #判断字符串1是否和字符串2不相等
6. 多重条件判断
判断1 -a 判断2 #逻辑与
判断1 -o 判断2 #逻辑或
!判断 #逻辑非
Linux 条件判断的更多相关文章
- linux 条件判断式
1.利用if ...then if [ 判断条件 ];then 指令 fi 实例一 Y/N: #!/bin/bash #Program: # This program shows "Hell ...
- linux条件判断:eq、ne、gt、lt、ge、le
-eq(equal) :判断是否相等,相等为真 -ne(inequality):判断是否不等,不等为真 -gt(greter than):判断是否大于,大于为真 -lt(less than):判断是否 ...
- Linux学习之第十九、条件判断
原文地址:http://vbird.dic.ksu.edu.tw/linux_basic/0340bashshell-scripts_4.php 条件判断式 只要讲到『程序』的话,那么条件判断式,亦即 ...
- linux Shell中常用的条件判断
linux Shell中常用的条件判断 -b file 若文件存在且是一个块特殊文件,则为真 -c file 若文件存在且是一个字符特殊文件,则为真 -d ...
- Linux shell if条件判断2
前面介绍linux shell的if判断的语法,现在再补充一点. Linux shell if条件判断1 分支判断结构 if , case 下面两个结构语法,已经在前面有过示例. 结构1: ...
- Linux shell脚本之 if条件判断 (转)
IF条件判断 1.基本语法: if [ command ]; then 符合该条件执行的语句 fi 2.扩展语法: if [ command ];then 符合该条件执行的语句 elif [ comm ...
- Linux makefile教程之条件判断六[转]
使用条件判断 —————— 使用条件判断,可以让make根据运行时的不同情况选择不同的执行分支.条件表达式可以是比较变量的值,或是比较变量和常量的值. 一.示例 下面的例子,判断$(CC)变量是否“g ...
- LINUX SHELL条件判断
算术运算的条件判断 [] [[]]: -eq -ne -lt -le -gt -ge (( )):><>=<== [root@monitor ~]# if (( 2 == 3) ...
- Linux学习 -- Shell编程 -- 条件判断
按照文件类型进行判断 两种格式 test -e /root/install.log [ -e /root/install.log ] 注意空格 适合用于脚本中 echo $?可以看到结果 [ - ...
随机推荐
- Docker网络详解
当 Docker 启动时,会自动在主机上创建一个 docker0 虚拟网桥,实际上是 Linux 的一个 bridge,可以理解为一个软件交换机.它会在挂载到它的网口之间进行转发. ...
- JAVASCRIPT 中 FOR (VAR I IN DATA) 循环数组项
今天在改代码的时候发现有很多代码的循环是用 for(var i in data)写的,我通常都是用for(var i=0;i<data.length;i++) 就查看了一下,原来这两个是有区别的 ...
- excel 作图中次横坐标及次纵坐标的调试,以及excel自定义轴标签的步骤方法
在工作中除了要做一些常用的图表之外,不时还会有一切奇怪图表的制作需求. 今天的内容主要记录的是如何对excle图表的次横坐标及次纵坐标进行调试,以及如何自定义调整轴标签 首先看下如何做次纵坐标,工作中 ...
- <读书笔记>软件调试之道 :问题的核心-修复后的反思
声明:本文档的内容主要来源于书籍<软件调试修炼之道>作者Paul Butcher,属于读书笔记.欢迎转载! ---------------------------------------- ...
- jsvascript—谜之this?
原文:Gentle explanation of ‘this’ keyword in JavaScript 1. 迷之 this 对于刚开始进行 JavaScript 编程的开发者来说,this 具有 ...
- GET与POST的区别
转自http://blog.csdn.net/darxin/article/details/4944225#comments HTTP请求的GET与POST方式的本质区别可以参考hyddd在<浅 ...
- PAT 乙级 1005. 继续(3n+1)猜想 (25)
1005. 继续(3n+1)猜想 (25) 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 卡拉兹(Callatz)猜想已经在1001中给出了描述.在这个题目里,情 ...
- jQuery div内容间隔1秒动态向上滚动HTML、JS代码
demo1: <!DOCTYPE html> <html> <head> <title>div内容间隔1秒动态滚动</title> < ...
- git命令解析
一 常用命令 1..gitignore 文件为git忽略文件,例*.[oa] *.~ 为忽略.a或.o或.~结尾的文件./表示忽略目录,!表示反取, *表示匹配零个或者多个字符.?表示匹配一个字符. ...
- leetcode-javascript
1. Largest Number For example, given [3, 30, 34, 5, 9], the largest formed number is 9534330. // wro ...