You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Shell脚本中如何使用变量指定前缀移除路径前缀?

解决方案:用变量替代硬编码前缀移除路径前缀

这事儿超简单,直接在参数扩展语法里引用你的prefix变量就行,完全不用硬编码!

具体操作步骤

  1. 先定义好你的两个变量:
var=/myprefix/something/something-else
prefix=/myprefix/
  1. 使用参数扩展的#操作符(最短匹配移除前缀)来实现需求:
echo ${var#$prefix}
  1. 输出结果和你预期的完全一致:
something/something-else

补充说明

  • 这里的${var#$prefix}语法,本质和你之前硬编码的${var#/myprefix/}逻辑完全相同,只是把固定前缀换成了变量引用$prefix。
  • #操作符是非贪婪的最短匹配,正好契合你之前的需求;如果需要贪婪匹配最长前缀,可以换成##操作符,但你的场景用#就足够了。
  • 要注意prefix的格式必须和var里的前缀部分完全匹配,比如如果prefix是/myprefix(末尾无斜杠),那输出会是/something/something-else,这点和硬编码时的规则一致。

内容的提问来源于stack exchange,提问作者user9657605

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 09:37:46