1. 条件测试
  1) 测试语句
  1) 条件测试语法
    在bash的各种流程控制结构中通常要进行各种测试,然后根据测试结果执行不同的操作,有时也会通过与if等条件语句相结合,使我们可以方便的完成判断。
  2) 【语法说明】
    格式1:test<测试表达式>
    格式2:[<测试表达式>]
    格式3:[[<测试表达式>]]
    说明:
      格式1和格式2是等价的。
    格式3为扩展的test命令,有网友推荐用推荐3,老男孩习惯使用格式2.
    提示:
      在[[]]中可以使用通配符进行模式匹配。&&、||、>、<等操作符可以应用于[[]]中,但不能应用于[]中。
      对整数进行关系运算,也可以使用shell的算术运算符(())。
  3) 【语法例子】
    格式1:test<测试表达式>
    范例1:test测试文件

  1. [root@1-241 scripts]# test -f file && echo true ||echo false
  2. false
  3. [root@1-241 scripts]# touch file
  4. [root@1-241 scripts]# test -f file && echo true ||echo false
  5. true

    范例2:test命令非(!)的写法

  1. [root@1-241 scripts]# test ! -f file && echo true ||echo false
  2. true
  3. [root@1-241 scripts]# touch file
  4. [root@1-241 scripts]# test ! -f file && echo true ||echo false
  5. false

    格式2:[<测试表达式>]
    范例:[]

  1. [root@1-241 scripts]# [ -f file ] && echo true ||echo false
  2. false
  3. [root@1-241 scripts]# touch file
  4. [root@1-241 scripts]# [ -f file ] && echo true ||echo false
  5. true
  6. [root@1-241 scripts]# [ -f file ] && cat file
  7. [root@1-241 scripts]# rm -rf file
  8. [root@1-241 scripts]# [ -f file ] && cat file
  9. [root@1-241 scripts]# cat file
  10. cat: file: 没有那个文件或目录

    格式3:[[<测试表达式>]]

    范例:[[]]

  1. [root@1-241 scripts]# [[ -f file ]] && echo true || echo false
  2. false
  3. [root@1-241 scripts]# [[ ! -f file ]] && echo true || echo false
  4. true
  5. [root@1-241 scripts]# [[ -f file && -f folder ]] && echo true || echo false
  6. false
  7. [root@1-241 scripts]# [ -f file && -f folder ] && echo true || echo false
  8. -bash: [: missing `]'
  9. false
  10. [root@1-241 scripts]# [ -f file -a -f folder ] && echo true || echo false
  11. false
  12. [root@1-241 scripts]# touch file folder
  13. [root@1-241 scripts]# [ -f file -a -f folder ] && echo true || echo false
  14. true
  15. [root@1-241 scripts]#
  16. [root@1-241 scripts]# rm -rf file
  17. [root@1-241 scripts]# [ -f file -a -f folder ] && echo true || echo false
  18. false

2. 文件测试操作符
  在书写测试表达式时,可以使用表1.3.4中的文件测试操作符
  表1.3.4常用文件测试操作符号

常用文件测试操作符号的记忆方法:

  1. [root@1-241 scripts]# echo f=file
  2. f=file
  3. [root@1-241 scripts]# echo d=dirctory
  4. d=dirctory
  5. [root@1-241 scripts]# echo s=size
  6. s=size
  7. [root@1-241 scripts]# echo e=exist
  8. e=exist
  9. [root@1-241 scripts]# echo r=read
  10. r=read
  11. [root@1-241 scripts]# echo w=write
  12. w=write
  13. [root@1-241 scripts]# echo x=executable
  14. x=executable
  15. [root@1-241 scripts]# echo nt="new than"
  16. nt=new than
  17. [root@1-241 scripts]# echo ot="old than"
  18. ot=old than

  

 

shell-添加条件测试的多种方法语法介绍与简单实战的更多相关文章

  1. Linux添加虚拟网卡的多种方法

    Linux添加虚拟网卡的多种方法有时候,一台服务器需要设置多个ip,但又不想添加多块网卡,那就需要设置虚拟网卡.这里介绍几种方式在linux服务器上添加虚拟网卡. 我们向eth0中添加一块虚拟网卡: ...

  2. Shell编程-条件测试 | 基础篇

    什么是Shell Shell是一个命令解释器,它会解释并执行命令行提示符下输入的命令.除此之外,Shell还有另一个功能,如果要执行多条命令,它可以将这组命令存放在一个文件中,然后可以像执行Linux ...

  3. 二、shell 脚本条件测试

    目录 一.条件测试 test 格式 文件测试 文件测试常见选项 整数值比较 字符串比较 浮点数的运算 逻辑测试 二.if语句 1单分支 2双分支结构 3多分支结构 三元运算符 三.case 一.条件测 ...

  4. shell脚本条件测试与比较

    1.条件测试常用语法 test 测试表达式 利用test命令进行条件测试表达式,test命令与测试表达式之间至少有一个空格 [ 测试表达式 ] 通过[ ]中括号进行条件测试表达式,[]中括号边界与测试 ...

  5. 关于shell脚本——条件测试、if语句、case语句

    目录 一.条件测试 1.1.表达说明 1.2.test命令 文件测试 1.3.整数值比较 1.4.字符串比较 1.5.逻辑测试 二.if语句 2.1.单分支结构 2.2.双分支结构 2.3.多分支结构 ...

  6. Linux Shell 03 条件测试

    条件测试 方式一:在Bash中 test命令和[]是等价的. test命令: if test $n1 -eq $n2 then echo "The two number are equal& ...

  7. Shell获取字符串长度的多种方法总结

    摘自:https://www.jb51.net/article/121290.htm 前言 我们在日常工作中,对于求字符串操作在shell脚本中很常用,实现的方法有很多种,下面就来给大家归纳.汇总了求 ...

  8. shell 复合条件测试 if [ $1 == "1" -o $1 == "0" ] ------==和-eq怎么用

    想要实现: ”,或者$1等于“” ];then 输出一些东西 ”,或者$1等于“” ];then 输出一些东西 fi 这里比较难操作的是等于和或者: 等于: -eq  或者 == 或者: -o 见: ...

  9. Shell编程-05-Shell中条件测试与比较

    目录 Shell脚本条件测试 Shell文件测试 Shell字符测试 Shell整数测试 Shell逻辑测试 Shell条件测试总结 Shell脚本条件测试     在Shell脚本中各种条件结构和流 ...

随机推荐

  1. java初探(1)之静态页面化——客户端缓存

    利用服务端缓存技术,将页面和对象缓存在redis中,可以减少时间浪费,内存开销.但在每次请求的过程中,仍然会有大量静态资源的请求和返回. 使用静态页面技术,页面不必要使用页面交互技术,比如thymel ...

  2. 项目实战 - 原理讲解<-> Keras框架搭建Mtcnn人脸检测平台

    Mtcnn它是2016年中国科学院深圳研究院提出的用于人脸检测任务的多任务神经网络模型,该模型主要采用了三个级联的网络,采用候选框加分类器的思想,进行快速高效的人脸检测.这三个级联的网络分别是快速生成 ...

  3. JVM学习第一天(虚拟机的前世今生与与Java的内存区域)

    其实说JVM的时候有很多人会懵, 也很不理解,我会写Java代码就可以了,我干嘛要学这个,其实不是的,学习JVM是很有必要性的; 为什么要了解JVM 1:写出更好,更健壮的Java程序; 2:提高Ja ...

  4. centos6.5环境下安装yum工具

    前不久因为安装数据库时动了yum安装文档中的参数,导致yum安装软件时总是出现no package等问题,决定重装yum工具. 第一步:下载原有yum安装包 [root@linux-node3 ~]# ...

  5. rabbitmq集成和实战

    与 Spring 集成 pom 文件 使用 Maven,这里使用的 4.3.11,所以这里引入的是 rabbit 是 2.0.0,如果兼容性的话请自行去 Spring 的官网上去查 这里补充一下,sp ...

  6. Windows安装tensorflow教程 GPU版

    PS:这是GPU版本,CPU版会用笔记本环境另写一篇博客. 前置准备 查看GPU型号 电脑桌面->右键我的电脑->选择管理->点击设备管理器  如下图: 如果不是英伟达显卡,那么不用 ...

  7. CTF-WeChall-第三天下午

    2020.09.11 哈哈哈,中午改了博客背景,添加了背景音乐,verygood,有种小窝的感觉了,下午继续努力 做题 第一题 Shadowlamb - Chapter I 题目地址 Ugah做游戏. ...

  8. 乔悟空-CTF-i春秋-Misc-爆破3

    hehe,第一次用这个,开始CTF刷题之旅 2020.09.02 题目地址 学习 题目分析 下边是题目给的php源码,意思就是进行源码审计,分析出能输出flag的条件. 这东西我是真小白,so,积累经 ...

  9. 突然挂了!Redis缓存都在内存中,这下完了!

    我是Redis,一个叫Antirez的男人把我带到了这个世界上. “快醒醒!快醒醒!”,隐隐约约,我听到有人在叫我. 慢慢睁开眼睛,原来旁边是MySQL大哥. “我怎么睡着了?” “嗨,你刚才是不是出 ...

  10. three.js学习4_光源

    Three.Light 首先展示的是使用半球光引用的效果, 光源直接放置于场景之上,光照颜色从天空光线颜色颜色渐变到地面光线颜色.光照主要有 AmbientLight 环境光 DirectionalL ...