Shell 之变量

变量替换

shell 的变量有着丰富的替换操作:

语法作用
${var} 或 $var变量值。
${var:-value}如果 $var 不为空( test -n $var ),使用 $var ;否则使用 value
${var:=value}如果 $var 不为空,使用 $var ;否则将 value 赋给 $var ,并使用 value 。
${var:?value}如果 $var 不为空,使用 $var 的值。否则,打印 value 并退出( exit )。类似断言 $var 不为空。
${var:+value}如果 $var 不为空,则使用 value ,否则使用空。
${#var}返回变量 $var 的长度。

变量替换之删除指定字符串

语法作用
${var#pattern}将 $var 的值从左侧删除与模式 pattern 匹配的最短字符串并返回。
${var##pattern}将 $var 的值从左侧删除与模式 pattern 匹配的最长字符串并返回。
${var%pattern}将 $var 的值从右侧删除与模式 pattern 匹配的最短字符串并返回。
${var%%pattern}将 $var 的值从右侧删除与模式 pattern 匹配的最长字符串并返回。
小技巧:
#表示左侧;  % 表示右侧。
一个  # 或  % 表示最短;两个  # 或  % 表示最长。

变量值之替换

语法作用
${var/pattern/replace}将 $var 的值中第一个与模式 pattern 匹配的串替换为 replace 并返回。
${var/pattern}将 $var 的值中第一个与模式 pattern 匹配的串删除并返回。
${var//pattern/replace}将 $var 的值中所有与模式 pattern 匹配的串替换为 replace* 并返回。
${var/#pattern/replace}将 $var 的值开头与模式 pattern 匹配的串替换为 replace 并返回。
${var/%pattern/replace}将 $var 的值结尾与模式 pattern 匹配的串替换为 replace 并返回。

变量值之大小写转换

语法作用
${var^pattern}将 $var 值开头与模式 pattern 匹配的串转换为大写。如果模式 pattern 省略,则将首字母转换为大写。
${var^^pattern}将 $var 值中所有与模式 pattern 匹配的串转换为大写。如果模式 pattern 省略,则将整个 $var 转换为大写。
${var,pattern}将 $var 值开头与模式 pattern 匹配的串转换为小写。如果模式 pattern 省略,则将首字母转换为小写。
${var,,pattern}将 $var 值中所有与模式 pattern 匹配的串转换为小写。如果模式 pattern 省略,则将整个 $var 转换为小写。

变量值之部分截取

语法作用
${var:pos}返回 $var 值从 pos 开始(到结尾)的子字符串。
${var:pos:len}返回 $var 值从 pos 开始长度为 len 的子字符串。
pos 可以取负值,表示从右侧开始。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值