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

[root@1-241 scripts]# test -f file && echo true ||echo false
false
[root@1-241 scripts]# touch file
[root@1-241 scripts]# test -f file && echo true ||echo false
true

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

[root@1-241 scripts]# test ! -f file && echo true ||echo false
true
[root@1-241 scripts]# touch file
[root@1-241 scripts]# test ! -f file && echo true ||echo false
false

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

[root@1-241 scripts]# [ -f file ] && echo true ||echo false
false
[root@1-241 scripts]# touch file
[root@1-241 scripts]# [ -f file ] && echo true ||echo false
true
[root@1-241 scripts]# [ -f file ] && cat file
[root@1-241 scripts]# rm -rf file
[root@1-241 scripts]# [ -f file ] && cat file
[root@1-241 scripts]# cat file
cat: file: 没有那个文件或目录

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

    范例:[[]]

[root@1-241 scripts]# [[ -f file ]] && echo true || echo false
false
[root@1-241 scripts]# [[ ! -f file ]] && echo true || echo false
true
[root@1-241 scripts]# [[ -f file && -f folder ]] && echo true || echo false
false
[root@1-241 scripts]# [ -f file && -f folder ] && echo true || echo false
-bash: [: missing `]'
false
[root@1-241 scripts]# [ -f file -a -f folder ] && echo true || echo false
false
[root@1-241 scripts]# touch file folder
[root@1-241 scripts]# [ -f file -a -f folder ] && echo true || echo false
true
[root@1-241 scripts]#
[root@1-241 scripts]# rm -rf file
[root@1-241 scripts]# [ -f file -a -f folder ] && echo true || echo false
false

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

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

[root@1-241 scripts]# echo f=file
f=file
[root@1-241 scripts]# echo d=dirctory
d=dirctory
[root@1-241 scripts]# echo s=size
s=size
[root@1-241 scripts]# echo e=exist
e=exist
[root@1-241 scripts]# echo r=read
r=read
[root@1-241 scripts]# echo w=write
w=write
[root@1-241 scripts]# echo x=executable
x=executable
[root@1-241 scripts]# echo nt="new than"
nt=new than
[root@1-241 scripts]# echo ot="old than"
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. 【Nginx】面试官:给我讲讲Nginx如何实现四层负载均衡?

    写在前面 这次又被问到Nginx四层负载均衡的问题了,别慌,我们一起来细细分析这个看似简单的问题. 如果文章对你有点帮助,请关注 冰河技术 微信公众号,点赞.在看.留言和转发,大家的四连是我持续创作的 ...

  2. JAVA,.NET项目开发难上手?力软敏捷开发框架解君愁

        力软敏捷开发框架/快速开发平台是一款轻量化多语言可视化开发工具.秉持以“让开发变得简单”为宗旨,深耕软件平台, 拥有近10年的行业开发经验,经典的.NET软件产品已经服务超5000家客户,并得 ...

  3. C007:输入美元数量,用最少的20美元,10美元,5美元和1美元付款

    代码: #include "stdafx.h" int _tmain(int argc, _TCHAR* argv[]) { int amount; do{ printf(&quo ...

  4. Oracle中真正稳妥的求三甲的方法

    坐地铁回家路上忽然想起,三甲排名可能为多个,只取三名岂不荒谬.不信请看下面数据: create table tb_score( id number(4,0) primary key, name nva ...

  5. Ajax跨域解决方案大全

    题纲 关于跨域,有N种类型,本文只专注于ajax请求跨域(,ajax跨域只是属于浏览器"同源策略"中的一部分,其它的还有Cookie跨域iframe跨域,LocalStorage跨 ...

  6. IDAPython 安装和设置(windows+linux)

    安装步骤: 我采用的是IDA 6.8 windows安装: 机器上安装了Python,到Python的官网—http://www.python.org/getit/下载2.7的安装包.注意对应操作系统 ...

  7. linux 字符驱动框架(用户态的read,write,poll是怎么操作驱动的)

    前言 这篇文章是通过对一个简单字符设备驱动的操作来解释,用户态的读写操作是怎么映射到具体设备的. 因为针对不同版本的linux内核,驱动的接口函数一直有变化,这贴出我测试的系统信息: root@ubu ...

  8. RXJAVA之Subject

    RxJava中常见的Subject有4种,分别是 AsyncSubject. BehaviorSubject.PublishSubject. ReplaySubject. AsyncSubject 使 ...

  9. Elasticsearch安装、原理学习总结

    ElasticSearch ElasticSearch概念 Elasticsearch是Elastic Stack核心的分布式搜索和分析引擎. 什么是Elastic Stack Elastic Sta ...

  10. JVM学习(六)JVM常见知识问答

    文章更新时间:2020/04/21 1.什么是Java虚拟机?为什么Java被称作是"平台无关的编程语言"? Java虚拟机是一个可以执行Java字节码的虚拟机进程. Java源文 ...