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. ASP.NET Core 3.x Razor视图运行时刷新实时编译

    前言: 很长一段时间没有写过ASP.NET Core Razor(.cshtml)视图开发WEB页面了,今天刚好把之前做的一个由ASP.NET Core 2.2+Razor开发的项目升级到ASP.NE ...

  2. java-数组的排序

    package day02; public class SelectSort { public static void selectSort(int[] arr){ for(int x=0;x< ...

  3. mysql排序的问题与获取第几高的分数的信息

    1:先截图看效果 2:完整的SQl语句 SELECT * FROM studentscore; -- ------------------ SET @maxscore=(SELECT MAX(scor ...

  4. PHP的八个魔术常量

    1. 什么魔术常量 预定义常量:预定义常量就是PHP内置的常量,预先定义好的 PHP有很多预定义常量,比如:PHP_VERSION(版本号).PHP_OS(操作系统). 这些普通的预定义常量在程序中的 ...

  5. CentOS7 中常用命令

    1.开放端口 开放50070端口 firewall-cmd --zone=public --add-port=50070/tcp --permanent 关闭50070端口 firewall-cmd ...

  6. linux下redis安装部署

    1.获取redis资源 进官网下载https://redis.io/download最新版本后将文件移到linux环境中 或者直接wget http://download.redis.io/relea ...

  7. [Java并发编程之美]第1章 线程基础 补充知识

    1.2线程创建与运行 创建线程有三种方式: 继承Thread类并重写run方法: 实现Runnable接口的run方法,new Thread时将该类对象作为参数传入: 实现Callable接口的cal ...

  8. python中random库的使用

    基本随机函数 计算机产生随机数是需要随机数种子的,例如 给定一个随机数种子,就能利用梅森旋转算法产生一系列随机序列 每一个数都是随机数,只要随机种子相同,产生的随机数和数之间的关系都是确定的 随机种子 ...

  9. java8--排序

    排序的传统的写法是: Collections.sort( SortTest.users, new Comparator<User>() { @Override public int com ...

  10. ftp自动上传下载同步工具 免费好用的ftp自动上传下载同步工具

    有时我们需要定时上传文件到FTP,可大多数FTP工具并不支持定时上传功能,这时我们就需要可以定时ftp上传的工具(服务器管理工具).它是一款功能强大的服务器集成管理器,包含win系统和linux系统的 ...