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

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

可实现多级判断

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

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

[ $2 ] && {
echo "a"
[ $2 = '-i' ] && {
echo "b"
}
[ $2 = '-a' ] && {
echo "c"
}
} || echo "d"

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

[ $2 ] && {
echo "a"
[ $2 = '-i' ] && {
echo "b"
} || {
[ $2 = '-a' ] && {
echo "c"
}
}
} || 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. 苹果推信群发,苹果推信群发软件,iMessage群发系统

    在当今数字化的时代,智能手机的普及率已达到了前所未有的高度,其中,苹果公司的iPhone无疑是市场上最受欢迎的智能手机之一,然而,与手机的广泛应用相伴的是,众多企业对于如何有效地向这些手机用户推送信息 ...

  2. 01的token的年度总结

    大家好,我是token,一个热爱.NET的普通人,同样我来自湖南衡阳,再次之前我已经遇到非常多的湖南衡阳的老乡,比如李哥. ​ 在这里一年中,我的成长也是非常迅速的,每一年的的每一天,感觉自己的知识点 ...

  3. Keepass调用Xshell、SecureCRT、RDP、Putty的方法(一劳永逸版)

    依次点击"工具"--"选项"--"集成"--"网址替代"--"添加"--添加"方案&quo ...

  4. 2023-08-08:给你一棵 n 个节点的树(连通无向无环的图) 节点编号从 0 到 n - 1 且恰好有 n - 1 条边 给你一个长度为 n 下标从 0 开始的整数数组 vals 分别表示每个节

    2023-08-08:给你一棵 n 个节点的树(连通无向无环的图) 节点编号从 0 到 n - 1 且恰好有 n - 1 条边 给你一个长度为 n 下标从 0 开始的整数数组 vals 分别表示每个节 ...

  5. react+echarts出现“There is a chart instance already initialized on the dom.”

    写了一个关于echatrs组件,报错dom重复 配置信息从props拿 let chart; useEffect(() => { if (chart) { updateChartView(); ...

  6. 第十一部分_Shell脚本之正则表达式

    正则表达式 1. 正则表达式是什么? 正则表达式(Regular Expression.regex或regexp,缩写为RE),也译为正规表示法.常规表示法,是一种字符模式,用于在查找过程中匹配指定的 ...

  7. ROMA Connect: 5大联接能力+4大集成能力,推进企业数字化转型

    摘要:ROMA Connect是一个全栈式的应用与数据集成平台,源自华为数字化转型集成实践,聚焦应用和数据连接,适配多种企业常见的使用场景. 本文分享自华为云社区<数据融合集成平台ROMA Co ...

  8. 什么是VXLAN?为什么需要VXLAN?

    摘要:本文介绍了什么是VXLAN,以及VXLAN的基本概念和工作原理,包括:为什么需要VXLAN?VXLAN与VLAN之间有啥不同?什么是VTEP?什么是VNI?VXLAN报文是如何封装的?VXLAN ...

  9. 数仓无损压缩算法:gzip算法

    摘要:一种无损的压缩数据格式,是一个在类Unix上的一种文件解压缩软件. 本文分享自华为云社区<GaussDB(DWS) gzip算法简介>,作者:hw0086. [算法原理] gzip是 ...

  10. ByteHouse:基于ClickHouse的实时数仓能力升级解读

     更多技术交流.求职机会,欢迎关注字节跳动数据平台微信公众号,回复[1]进入官方交流群   ByteHouse是火山引擎上的一款云原生数据仓库,为用户带来极速分析体验,能够支撑实时数据分析和海量数据离 ...