Shell判断

按照文件类型进行判断

-b 判断文件是否存在,并且是否为快设备文件(是块设备文件为真)
-c 判断文件是否存在,并且是否为字符设备文件(是字符设备文件为真)
-d 判断文件是否存在,并且是否为目录文件(是目录为真)
-e 判断文件是否存在,存在为真
-f 判断文件是否存在,并且是否为普通文件(存在为真)
-L 判断文件是否存在,并且是否为符号链接文件(是符号链接文件为真)
-p 判断文件是否存在,并且是否为管道文件(是管道文件为真)
-s 判断文件是否存在,并且是否为空(非空为真)
-S 判断文件是否存在,并且是否为套接字文件(是套接字文件为真)

按照文件权限进行判断

-r 判断文档是否有读权限
-w 判断是否有写权限
-x 判断是否可执行

两个文件之间的比较

文件1 -nt 文件2 判断文件1的修改时间是否比文件2的新(如果新为真)
文件1 -ot 文件2 判断文件1的修改时间是否比文件2的旧(如果旧为真)
文件1 -ef 文件2 判断文件1是否和文件2的inode号一致,可以理解为两个文件是否为同一个文件,这个判断是判断硬链接的最好方法

两个整数之间的比较

-eq 判断两个数值是否相等
-ne 判断两个数值是否不相等
-gt 判断是否大于
-lt 判断是否小于
-ge 判断是否大于等于
-le 判断是否小于等于

字符串之间的判断

-z 判断字符串是否为空
-n 判断字符串是否为非空
字符串1 == 2 判断字符串1是否和字符串2相等
字符串1 != 2 判断字符串1是否和字符串2不相等

多重条件判断

判断1 -a 判断2 逻辑与,判断1和判断2都成立,最终结果为真
判断1 -o 判断2 逻辑或,判断1和判断2有一个成立,结果为真
!判断 逻辑非 使原始的判断式取反
注:本文章仅此对自己以后学习参考

Shell中各种判断语法的更多相关文章

  1. shell中条件判断语法与判断条件小结

    1. IF条件判断语法: if Athen   dosthelif B   dosthelse   dosthfi 2. 判断条件:   2.1 字符串判断   str1 = str2 当两个串有相同 ...

  2. shell中条件判断if中的-z到-d的意思

    shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真. [ -c FILE ] 如果 ...

  3. shell 中如何判断前一个命令是否执行成功

    shell 中如何判断前一个命令是否执行成功 通过判断返回值来解决: if [ $? -eq 0 ];then 命令正确的分支 else   命令失败的分支 fi

  4. 在shell中如何判断字符串是否为有效的IP地址【转】

    转自 在shell中如何判断字符串是否为有效的IP地址_echoisecho_新浪博客http://blog.sina.com.cn/s/blog_53a844e50100xxus.html 近来需要 ...

  5. shell中条件判断if中的-z到-d

    shell中条件判断if中的-z到-d的意思 [ -a FILE ] 如果 FILE 存在则为真. [ -b FILE ] 如果 FILE 存在且是一个块特殊文件则为真.[ -c FILE ] 如果 ...

  6. shell 中的判断

    一.if的基本语法: if [ command ];then    符合该条件执行的语句 elif [ command ];then    符合该条件执行的语句 else    符合该条件执行的语句 ...

  7. Shell中比较判断

    一.shell判断数组中是否包含某个元素:ary=(1 2 3)a=2if [[ "${ary[@]}" =~ "$a" ]] ; then    echo & ...

  8. 【转】shell中如何判断一个变量是否为空

    判断一个脚本中的变量是否为空,我写了一个这样的shell脚本: #!/bin/sh #filename: test.sh para1= if [ ! -n $para1 ]; then echo &q ...

  9. shell编程学习笔记(八):Shell中if判断的使用

    一.if的语法: 1.单分支语句结构 if [ 条件表达式 ]; then 指令 fi 2.双分支语句结构 if [ 条件表达式 ]; then 指令一 else 指令二 fi 3.多分支语句结构 i ...

随机推荐

  1. 【Alpha】功能规格说明书

    更新说明:从用户需求分析中剥离有关用户场景分析部分,加入功能规格说明书. Github地址:https://github.com/buaase/Phylab-Web/blob/master/docs/ ...

  2. We are a team----sh_6666

    团队宣言:编程,我们是玩命的,玩命,我们是认真的. 团队简介: 团队名称:sh_6666队 团队博客链接:http://www.cnblogs.com/sh-6666/ 人物简介: 剧团导演:吴小勇 ...

  3. 关于给C盘扩容以及动态磁盘

    2019.4.5 周五 磁盘分为基本磁盘和动态磁盘 基本磁盘转动态磁盘是很容易的 https://jingyan.baidu.com/article/59a015e3a3d504f7948865b1. ...

  4. Alpha冲刺——测试随笔

    写在前面 作业链接 测试工作安排 测试模块 用户登录 日常管理模块 项目展示模块 测试计划 用户登录 测试功能 测试项 输入/操作 检验点 预期效果 用户登录 登录动作 点击登录 报错提示 无法登录, ...

  5. Beta 冲刺 四

    团队成员 051601135 岳冠宇 031602629 刘意晗 031602248 郑智文 031602330 苏芳锃 031602234 王淇 照片 项目进展 岳冠宇 昨天的困难 数据交换比较复杂 ...

  6. Win2008r2 由ESXi 转换到 HyperV的处理过程

    1. 大部分2008r2 采取了 windows loader的方式激活 这种方式 会导致hyperV 启动失败 因为他家在了错误的bios类型 所以第一步建议 使用windows loader 卸载 ...

  7. helm 替换源的方法

    网上找了一个 helm 替换源的方法 挺好用的 mark 一下 helm repo remove stable helm repo add stable https://kubernetes.oss- ...

  8. java 方法的返回类型

    定义了返回值类型后 必须要执行 return 因为 当一个变量初始化时候 需要有数据 如果方法体里面没有返回数据类型时 这个变量是没有数据的 会报错 所以必须要返回一个数据 当一个方法体里面有 if ...

  9. IDEA 修改 jdk 版本

    3步 一  file--setting 二 file--Project Structure 三 file--Project Structure

  10. MySQL 主从复制详解

    读写分离的意思是,写入的时候向 a 服务器写入,而读出的时候从 b c d 甚至更多的服务器读出:这样的架构适合于读多写少的应用,最典型的就是火车购票系统,一般我们买票的时候要先查询好多次,包括车次啊 ...