参数替换

  1. 等价替换

    ${var_name} 等价于 $var_name
    
  2. var:-default 和 var-default

    $(var:-default)   当var为空或未定义时整个表达式的值为default
    $(var-default)    当且仅当var未定义时整个表达式的值为default
    
  3. var:=default 和 var=default

    $(var:=default)   当var为空或未定义时整个表达式的值为default,并且将var的值设置为default
    $(var=default)    当且仅当var未定义时整个表达式的值为default,并且将var的值设置为default
    
  4. var:?default 和 var?message

    $(var:?message)   当var为空或未定义时,打印错误信息,信息内容为message表示的值
    $(var?message)    当且仅当var未定义时,打印错误信息,信息内容为message表示的值
    
  5. var:+default 和 var+default

    $(var:+default)   当var已定义且不为空时整个表达式的值为default
    $(var+default)   当var已定义时整个表达式的值为default(不管var是否是空)
    

字符串截取

  1. ${str:offest} 从下标offset(含)开始截取到末尾的子串
  2. ${str:offest:length} 从下表offset(含)开始向后截取长度为length的子串,长度超出不报错
  3. ${str:offest:index} 此处的index为负数,最后一个字符为-1,依次往前为-2,-3。此表达式截取offset(含)到index(不含)之间的子串,当index表示的位置在offset左边时会报错

变量匹配

${!prefix*}、${!prefix@} 将带有前缀为prefix的变量名打印出来

数组操作

1.${!name[@]}、${!name[*]} 将数组name的所有下标返回,如果变量name不是数组则返回0,不存在则空
2.${name[@]}、${name[*]}将数组name的所有元素返回,如果变量name不是数组则返回name的值,不存在则空
3.${name[index]} 将数组name的index处的元素返回,如果变量name不是数组且index为0时返回name的值,变量或索引index处的元素不存在则返回空

正则匹配替换

1、${parameter#word}、${parameter##word}从头开始扫描word,将匹配word正则表达的字符过滤掉#为最短匹配,##为最长匹配
2、${parameter%word}、${parameter%%word}从尾开始扫描word,将匹配word正则表达式的字符过滤掉%为最短匹配,%%为最长匹配
3、${parameter/pattern/string}、${parameter//pattern/string}/表示只替换一次
//表示全部替换

Linux ${}表达式详解相关推荐

  1. java拉姆达表达式事例,Java Lambda表达式详解和实例

    简介 Lambda表达式是Java SE 8中一个重要的新特性.lambda表达式允许你通过表达式来代替功能接口. lambda表达式就和方法一样,它提供了一个正常的参数列表和一个使用这些参数的主体( ...

  2. java lambda表达式详解_Java8新特性Lambda表达式详解

    课程目标: 通过本课程的学习,详细掌握Java8新特性之Lambda表达式: 适用人群:有Java基础的开发人员: 课程概述:从Java 8出现以来lambda是最重要的特性之一,它可以让我们用简洁流 ...

  3. cron表达式详解 Elastic-Job名次解释

    #1.cron:cron表达式,用于配置作业触发时间 #2.shardingTotalCount:作业分片总数 #3.shardingItemParameters:分片序列号和参数用等号分隔,多个键值 ...

  4. SpringBoot使用AOP,PointCut表达式详解以及使用

    SpringBoot使用AOP,PointCut表达式详解以及使用 1.相关注解 2.PointCut 表达式详解 2.1 execution: 2.1 within: 2.3. this: 2.4. ...

  5. pyzabbix 删除触发器_zabbix设置邮件报警, Zabbix常用Key值, zabbix触发器表达式详解, zabbix制作自己模板...

    zabbix设置邮件报警 方法一:说明此方法,会产生中文乱码问题 第一步:首先安装mailx组件并配置好能够通过三方邮箱发送邮件 yum -y install mailx 然后编辑mailx的配置文件 ...

  6. Spring定时器corn表达式详解

    1.结构 Spring定时器corn表达式详解 2.各字段的含义 字段 允许值 允许的特殊字符 秒 0~59 - * / 分 0~59 - * / 小时 0~23 - * / 日期 1~31 - * ...

  7. Cron表达式详解和表达式的验证

    Cron表达式详解和表达式的验证 本篇不算原创,因为主要内容来自网上的博客,所以给出我参考文章的链接. 本文cron表达式详解的大部分内容参考了[cron表达式详解]和Quartz使用总结.Cron表 ...

  8. Quartz学习之Cron表达式详解

    Quartz学习之Cron表达式详解 一.cron表达式结构 **二.各字段的含义** 解释: 注意要点: 三.示例 一.cron表达式结构 cron表达式从左到右(用空格隔开):**秒 分 小时 月 ...

  9. SpringBoot的AOP中PointCut表达式详解以及使用

    首先,在pom.xml中添加依赖 <dependency><groupId>org.springframework.boot</groupId><artifa ...

  10. Java8 Lambda表达式详解手册及实例

    先贩卖一下焦虑,Java8发于2014年3月18日,距离现在已经快6年了,如果你对Java8的新特性还没有应用,甚至还一无所知,那你真得关注公众号"程序新视界",好好系列的学习一下 ...

最新文章

  1. Python数据处理篇之Matplotlib系列(六)---plt.hist()与plt.hist参数详解
  2. 脚本大全_抖音文案大全2020励志:抖音最火励志搞笑句子,直接套用上热门
  3. STM32L0系列串口重定义的方法
  4. hdu3068 . 最长回文
  5. python3环境下用matplotlib库实现UI交互
  6. 研发协同平台持续集成2.0架构演进
  7. php return 变量,php内核笔记–函数返回变量return_value
  8. 【渝粤题库】陕西师范大学210004幼儿园美术教育作业(高起专)
  9. 从头学习DirectDraw
  10. idea如何安装scala插件
  11. Singularity将本地SIF文件,转成sandbox
  12. python改变背景颜色_python中绘图时怎么改背景颜色?
  13. 到底是什么决定了路由器的信号强弱和穿墙能力?
  14. 题解 SP4487 【GSS6 - Can you answer these queries VI】
  15. 解决萤石云sdk语音对讲功能(实现)
  16. 手机发布新闻php,自动发布新闻的php代码_php
  17. 找出相似的图片--C#
  18. 【Vue知识点- No8.】网易云音乐案例(vant组件库的使用)
  19. 哈佛商业评论:关于区块链的真相
  20. python_path

热门文章

  1. LINQPad工具-linq、sql、IL优化和转换
  2. Hanlp自然语言处理工具的使用演练
  3. idea加载lombok插件
  4. [ZigBee] 7、ZigBee之UART剖析(ONLY串口发送)
  5. Android Gallery组件实现循环显示图像
  6. hadoop记录topk
  7. OJ1048: 阶乘表(C语言)(易错,关于int和double范围问题)
  8. 信息学奥赛一本通(1125:矩阵乘法)
  9. 理论基础 —— 栈 —— 顺序栈
  10. 训练日志 2019.1.17