shell 文件条件判断
按照文件类型进行判断
'-b 文件'
判断该文件是否存在,并且是否为块设备文件(是块设备文件为真)
'-c 文件'
判断该文件是否存在,并且是否为字符设备文件(是字符设备文件为真)
'-d 文件'
判断该文件是否存在,并且是否为目录文件(是目录文件为真)
'-e 文件'
判断该文件是否存在(存在为真)
'-f 文件'
判断该文件是否存在,并且是否为普通文件(是普通文件为真)
'-L 文件'
判断该文件是否存在,并且是否为符号链接文件(是符号链接文件为真)
'-p 文件'
判断该文件是否存在,并且是否为管道文件(是管道文件为真)
'-s 文件'
判断该文件是否存在,并且是否为非空(非空为真)
'-S 文件'
判断该文件是否存在,并且是否为套接字文件(是套接字文件为真)
判断格式
*)test -e /root/install.log
*) [ -e /root/install.log ]
实例:
[ -d /root ] && echo "yes" || echo "no"
第一个判断命令如果正确执行,则打印yes,否则打印no
按照文件权限进行判断
'-r 文件'
判断该文件是否存在,并且是否该文件拥有读权限(有读权限为真)
'-w文件'
判断该文件是否存在,并且是否该文件拥有写权限(有写权限为真)
'-x 文件'
判断该文件是否存在,并且是否该文件拥有执行权限(有执行权限为真)
'-u 文件'
判断该文件是否存在,并且该文件拥有SUID权限(有SUID权限为真)
'-g文件'
判断该文件是否存在,并且是否该文件拥有SGID权限(有SGID权限为真)
'-k 文件'
判断该文件是否存在,并且是否该文件拥有SBit权限(有SBit权限为真)
[ -w /root/intall.log] && echo "yes" || echo "no"
只要有写权限即可,并不会判断是所有者或是所属组是否有权限
两个文件比较
'文件1 -nt 文件2'
判断文件1的修改时间是否比文件2的新(如果新则为真)
'文件1 -ot 文件2'
判断文件1的修改时间是否比文件2的旧(如果旧则为真)
'文件1 -ef 文件2'
判断文件1是否和文件2的Inode号一致,可以理解为两个文件是否为同一个文件。
这个判断用于判断硬链接是很好的方法
ln /root/student.txt /tmp/stu.txt
创建一个硬链接
[/root/student.txt -ef /tmp/stu.txt] && echo "yes" || echo "no"
yes
用test测试下,果然很有用
shell 文件条件判断的更多相关文章
- shell中条件判断if中的-z到-d的意思
shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 ...
- Linux shell if条件判断2
前面介绍linux shell的if判断的语法,现在再补充一点. Linux shell if条件判断1 分支判断结构 if , case 下面两个结构语法,已经在前面有过示例. 结构1: ...
- shell中条件判断if中的-z到-d
shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 ...
- 我们一起来学Shell - shell的条件判断
文章目录 Shell 条件测试语法 符号说明 Shell 测试表达式 文件测试表达式 字符串测试表达式 整数操作符 逻辑操作符 测试表达式的区别总结 Shell 条件判断之if语句 单分支 IF 条件 ...
- shell中条件判断语法与判断条件小结
1. IF条件判断语法: if Athen dosthelif B dosthelse dosthfi 2. 判断条件: 2.1 字符串判断 str1 = str2 当两个串有相同 ...
- Shell IF条件判断解析
IF条件判断 1.基本语法: if [ command ]; then #符合该条件执行的语句 fi2.扩展语法: if [ command ];then #符合该条件执行的语句 elif [ com ...
- shell脚本条件判断if中-a到-z的意思
[ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 FILE 存在且是一个字特殊文件则 ...
- 【shell】条件判断式
条件判断式的表示格式: 文件判断式: [root@andon ~]# [ -e /root/1 ] && echo yes || echo no #注意[]里面的空格,第一个命令为真打 ...
- 第十三章、学习 Shell Scripts 条件判断式
利用 if .... then 单层.简单条件判断式 if [ 条件判断式 ]; then 当条件判断式成立时,可以进行的命令工作内容: fi <==将 if 反过来写,就成为 fi !结束 i ...
随机推荐
- 【转】构造自己的DIB类
ZC: 搜索"DIB_HEADER_MARKER"时,看到的这个文章 http://blog.csdn.net/yyyuhan/article/details/2026652 ...
- 《剑指offer》第五十五题(平衡二叉树)
// 面试题55(二):平衡二叉树 // 题目:输入一棵二叉树的根结点,判断该树是不是平衡二叉树.如果某二叉树中 // 任意结点的左右子树的深度相差不超过1,那么它就是一棵平衡二叉树. #includ ...
- MySQL学习(十)
要做:商城的留言板 一般情况,做留言板的显示很容易,直接select查询,再显示出来,但eschop中的留言板难点在于留言数据来自2张表,feedback表和comment表,我们需要把两张表中的内容 ...
- datagrid数据表格当数据为0的时候页面不显示数据
如下图: datagrid数据表格当数据为0的时候页面不显示数据,为空的表格数据全是0,但是页面无法显示 传递的json数据也是没问题的: 所以实在想不通,为什么easyUI datagrid 不显示 ...
- QT---事件系统
1 QT事件系统 1.1 事件的定义 QT中事件是有专门的类QEvent,常见的有键盘事件QKeyEvent.鼠标事件QMouseEvent和定时器事件QTimerEvent.例如用 ...
- 牛客OI周赛4-提高组 C 战争(war)
战争(war) 思路: 二分答案, 找到第一个不满足条件的位置 首先对于一个值来说, 所有这个值的区间肯定有交区间, 然后在这个交区间内不能出现比它小的数 所以我们check时从大的值开始考虑, 求出 ...
- android-------Java 常问的基础面试题
1."=="和equals方法究竟有什么区别? ==操作符专门用来比较两个变量的值是否相等,也就是用于比较变量所对应的内存中所存储的数值是否相同,要比较两个基本类型的数据或两个 ...
- Confluence 6 指派和撤销空间权限
指派空间权限 希望添加一个新用户或者用户组到权限列表中,从希望选择的选项中查找用户组或者用户,然后选择 添加(Add).用户和用户组将会显示在列表中:选择你希望引用的权限,然后选择 保存所有(Save ...
- stark组件base.html
stark 组件基础页面base.html 文件 base.html 1. base.html 页面是 : stark组件增,删,改,查页面的公共部分,如头部导航栏,左侧的用户权限列表栏等. 2. b ...
- 深入解析 composer 的自动加载原理 (转)
深入解析 composer 的自动加载原理 转自:https://segmentfault.com/a/1190000014948542 前言 PHP 自5.3的版本之后,已经重焕新生,命名空间.性状 ...