输入参数包含 'arg-m' 时,会输出 Hit Arg-M 和 Hit Arg-N

  1. [[ ${EXEC_PARAMS[@]} =~ 'arg-m' ]] && echo "Hit Arg-M" ||
  2. [[ ${EXEC_PARAMS[@]} =~ 'arg-n' ]] && echo "Hit Arg-N" ||
  3. echo "Oh Shit"

可实现多级判断

  1. [[ ${EXEC_PARAMS[@]} =~ 'arg-m' ]] && echo "Hit Arg-M" || {
  2. [[ ${EXEC_PARAMS[@]} =~ 'arg-n' ]] && echo "Hit Arg-N" ||
  3. echo "Oh Shit"
  4. }

入参2为 '-i' 则输出 a、b、d,入参2为 '-a' 则输出 a、c,入参2为非 '-i'  '-a' 则输出 a、d

  1. [ $2 ] && {
  2. echo "a"
  3. [ $2 = '-i' ] && {
  4. echo "b"
  5. }
  6. [ $2 = '-a' ] && {
  7. echo "c"
  8. }
  9. } || echo "d"

入参2为 '-i' 则输出 a、b,入参2为 '-a' 则输出 a、c,入参2为非 '-i'  '-a' 则输出 a、d

  1. [ $2 ] && {
  2. echo "a"
  3. [ $2 = '-i' ] && {
  4. echo "b"
  5. } || {
  6. [ $2 = '-a' ] && {
  7. echo "c"
  8. }
  9. }
  10. } || echo "d"

本质是逻辑符 '&&' '||' 结合项规则

项值为真则执行语句中的逻辑与,为假则执行语句中的逻辑或,逻辑性是单语句传递,后一句是否执行仅依赖前一句,与前前前语句无关,即 '&&' 的后一句是否执行取决于前一句是否为真, '||' 的后一句是否执行取决于前一句是否为假

【SHELL】[ ]、[[ ]]条件判断结构的更多相关文章

  1. shell条件测试结构

    条件测试结构 if/then结构用来判断命令列表的退出状态码是否为0(因为在UNIX惯例, 0表示"成功"), 如果成功的话, 那么就执行接下来的一个或多个命令. 有一个专有命令[ ...

  2. [Shell]条件判断与流程控制:if, case, for, while, until

    ---------------------------------------------------------------------------------------------------- ...

  3. shell条件判断if中的-a到-z的意思

    [ -a FILE ]  如果 FILE 存在则为真.  [ -b FILE ]  如果 FILE 存在且是一个块特殊文件则为真.  [ -c FILE ]  如果 FILE 存在且是一个字特殊文件则 ...

  4. Oracle IF-ELSE 条件判断结构

    1. IF 语法 IF 表达式 THEN ... END IF; 例如: set serverout on declare v_name varchar2(20):='&name'; begi ...

  5. shell条件判断与流程控制

    一 条件判断式语句 1.按文件类型进行判断 测试类型 作用 -b 文件 判断文件是否存在,并且是否为块设备文件(是块设备文件为真) -c 文件 判断文件是否存在,并且是否为字符设备文件(是字符设备设备 ...

  6. shell 条件判断语句整理

    常用系统变量 1)         $0 当前程式的名称 2)         $n 当前程式的第n个参数,n=1,2,…9 3)         $* 当前程式的任何参数(不包括程式本身) 4)   ...

  7. LINUX SHELL条件判断

    算术运算的条件判断 [] [[]]: -eq -ne -lt -le -gt -ge (( )):><>=<== [root@monitor ~]# if (( 2 == 3) ...

  8. Oracle IF-ELSE条件判断结构

    关于条件判断的几个函数: 一.IF-ELSE 判断语句1.IF 语法 IF 表达式 THEN ... END IF; 输入账号名 kiki 以登陆账号 declare v_name ):='& ...

  9. Shell条件判断(6)- 多重条件判断

    多重条件判断 多个条件判断一起使用 测试选项 作用 判断1 -a 判断2 逻辑与,判断1和判断2都成立,最终的结果才为真 判断1 -o 判断2 逻辑或,判断1和判断2有一个成立,最终的结果就为真 ! ...

  10. linux shell 条件判断if else, if elif else....

    在linux的shell中 if 语句通过关系运算符判断表达式的真假来决定执行哪个分支.Shell 有三种 if ... else 语句: if ... fi 语句: if ... else ... ...

随机推荐

  1. 什么是革命性技术eBPF?为什么可观测性领域都得用它

    公众号「架构成长指南」,专注于生产实践.云原生.分布式系统.大数据技术分享. 如果有一种技术可以监控和采集任何应用信息,支持任何语言,并且应用完全无感知,零侵入,想想是不是很激动,那么这个技术是什么呢 ...

  2. 神经网络优化篇:详解归一化输入(Normalizing inputs)

    归一化输入 训练神经网络,其中一个加速训练的方法就是归一化输入.假设一个训练集有两个特征,输入特征为2维,归一化需要两个步骤: 零均值 归一化方差: 希望无论是训练集和测试集都是通过相同的\(μ\)和 ...

  3. IntelliJ IDEA下载安装,以及关联gitee

    https://www.jetbrains.com.cn/ 点击下载 IntelliJ IDEA Ultimate 旗舰版(收费) IntelliJ IDEA Community 社区版(免费) 安装 ...

  4. Salesforce LWC学习(四十六) record-picker组件浅谈

    本篇参考: https://developer.salesforce.com/docs/platform/lwc/guide/reference-graphql.html https://develo ...

  5. Java并发(二十二)----wait notify的正确姿势

    开始之前先看看,sleep(long n) 和 wait(long n) 的区别: 1) sleep 是 Thread 的静态方法,而 wait 是 Object 的方法 2) sleep 不需要强制 ...

  6. 斯坦福 UE4 C++ ActionRoguelike游戏实例教程 07.在C++中使用UMG

    斯坦福 UE4 C++ ActionRoguelike游戏实例教程 07.在C++中使用UMG 斯坦福课程 UE4 C++ ActionRoguelike游戏实例教程 0.绪论 概述 本篇文章的目标是 ...

  7. Java中ArrayList的遍历与删除元素方式总结

    在Java编程中,我们经常需要对数据结构进行遍历操作,并根据业务需求删除部分元素.而数组列表(ArrayList)是集合类中的一种,它可以动态地添加和删除元素,非常适合在程序中使用.本篇博客将总结Ar ...

  8. 鸿蒙开发丨设备内UIAbility的几种交互方式

    本文分享自华为云社区<设备内UIAbility交互:无缝体验与高级技巧>,作者: 柠檬味拥抱. UIAbility组件间交互(设备内) 在设备内,UIAbility(用户界面能力)是系统调 ...

  9. 面试官让列举Spring的事务会失效的场景,我说了8个

    本文分享自华为云社区<哪些场景下Spring的事务会失效?>,作者:冰 河 . 在日常工作中,如果对Spring的事务管理功能使用不当,则会造成Spring事务不生效的问题.而针对Spri ...

  10. 数仓安全测试之SSRF漏洞

    摘要:SSRF (Server-Side Request Forgery,服务器端请求伪造)是指由攻击者构造请求,然后利用服务器的漏洞以服务端的身份向内网发送请求对内网发起攻击. 本文分享自华为云社区 ...