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

Mac终端zsh中${}与//在变量替换命令中的作用解析

zsh变量子串替换语法解析

1. ${}的作用

${变量名}是zsh(包括bash等主流shell)里参数展开的标准写法,核心作用有两个:

  • 明确变量边界,避免歧义。比如直接写$TEST_URLabc时,shell会把它当成一个名为TEST_URLabc的变量;而用${TEST_URL}abc,就清晰表示是TEST_URL的变量值加上字符串abc。
  • 触发变量高级操作:所有对变量的高级处理(子串替换、截取、大小写转换等),都必须通过${}包裹变量名来启用,你用到的子串替换就是其中一种。

2. 子串替换中的/与//

你用到的${TEST_URL/123/123-ro-}属于zsh的子串替换参数展开,其中的/是替换语法的分隔符,不同数量的/作用不同:

  • 单个/:仅替换变量值中第一个匹配到的子串。就像你的例子,TEST_URL="abc/123.com"里只有一个123,替换后得到abc/123-ro-.com。
  • 双//:替换变量值中所有匹配到的子串。举个实际例子:
TEST_URL="abc/123.com/123"
NEW_TEST_URL="${TEST_URL//123/123-ro-}"
echo $NEW_TEST_URL # 输出 abc/123-ro-.com/123-ro-

这种子串替换语法属于POSIX标准写法,在bash等其他主流shell中也能通用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.16 00:59:55