您当前的位置: 首页 > 

梁云亮

暂无认证

  • 2浏览

    0关注

    1211博文

    0收益

  • 0浏览

    0点赞

    0打赏

    0留言

私信
关注
热门博文

Shell 字符串 计算工具:$()、反引号、${}

梁云亮 发布时间:2020-02-27 12:49:26 ,浏览量:2

命令替换:( )与反引号

在bash中,( )与 ``(反引号)都是用来作命令替换的。 命令替换与变量替换差不多,都是用来重组命令行的,先完成引号里的命令行,然后将其结果替换出来,再重组成新的命令行。

示例: 在这里插入图片描述 echo ( l s ) 执 行 过 程 : s h e l l 扫 描 一 遍 命 令 行 , 发 现 了 (ls) 执行过程:shell扫描一遍命令行,发现了 (ls)执行过程:shell扫描一遍命令行,发现了(cmd)结构,便将$(cmd)中的cmd执行一次,得到其标准输出, 再将此输出放到原来命令 echo $(ls)中的 ( l s ) 位 置 , 即 替 换 了 (ls)位置,即替换了 (ls)位置,即替换了(ls),再执行echo命令。

${var} 获取变量的值

一般情况下, v a r 与 var与 var与{var}是没有区别的,但是用${ }会比较精确的界定变量名称的范围。 示例: 在这里插入图片描述

模式匹配替换

语法:

${var#pattern},${var##pattern} 从左边开始匹配,即去掉左边 
${var%pattern},${var%%pattern} 从右边开始匹配,即去掉右边
${var%pattern} ,${var#pattern} 表示最短匹配,匹配到就停止,非贪婪
${var%%pattern},${var##pattern} 是最长匹配

语法的pattern支持通配符 - *:表示零个或多个任意字符 - ?:表示零个或一个任意字符 - […]:表示匹配中括号里面的字符 - [!..]:表示不匹配中括号里面的字符

示例:获取路径、文件名及后缀 在这里插入图片描述 注意:

  • 对于#来说,通配符在前边,待查找的字符在后边
  • 对于*来说,通配符在后边,待查找的字符在前边 在这里插入图片描述
获取子串及替换

示例: 在这里插入图片描述 在这里插入图片描述

根据状态为变量赋值

在这里插入图片描述 说明:${param:-val}、${param:=val} 当变量为空时,把默认值赋值给了变量。这是一种给变量赋默认值的常见做法。

示例: 在这里插入图片描述

关注
打赏
1665409997
查看更多评论
立即登录/注册

微信扫码登录

0.0451s