如何不使用额外命令删除Bash变量中的指定前缀字符
实现方法
你可以直接使用Bash内置的参数扩展功能完成操作,无需调用外部命令,执行效率更高:
- 固定前缀移除写法
# 原始变量赋值 var1="prod/deployment-prod-specific.yml" # 移除前缀并重新赋值给var1 var1=${var1#prod/} # 验证输出 echo ${var1}
上述语法中的
#是Bash参数扩展的专属标识,代表从变量值的开头匹配最短的指定字符串并删除,完全匹配你移除固定prod/前缀的需求。
- 通用前缀移除写法
如果你的前缀不固定,只是需要删除第一个/前的所有内容,可以用通配符实现:
var1=${var1#*/}
- 兼容POSIX shell的写法
如果需要在非Bash环境下运行,也可以用sed命令实现:
var1=$(echo "$var1" | sed 's/^prod\///')
内容的提问来源于stack exchange,提问作者Sri
相关产品推荐
相关产品推荐

