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

如何在Bash脚本中将变量内的&替换为+并重新赋值

如何在Bash脚本中将变量内的&替换为+并重新赋值

嘿,我懂你想要个简单直接的解决办法,不想扯那些长篇大论的通用知识——完全理解你的需求!

你之前尝试的写法有两个小问题:一是Bash里赋值变量不能在变量名前加$(那是取值的写法);二是tr命令需要通过命令替换来捕获输出,直接用管道连变量赋值是行不通的。

给你两种简单有效的实现方式:

方法一:用Bash内置的参数替换(推荐)

这是最高效的方式,不需要调用外部命令,直接用Bash的字符串处理功能:

targetDir="&&&&&"
echo $targetDir # 输出 &&&&&

# 全局替换所有&为+
targetDir="${targetDir//&/+}"

echo $targetDir # 输出 +++++

语法解释:${变量//旧字符串/新字符串} 表示全局替换变量里所有匹配的旧字符串;如果只写一个/,比如${targetDir/&/+},只会替换第一个匹配的&。

方法二:用tr命令配合命令替换

如果你坚持想用tr,可以这样写,通过命令替换捕获tr的输出重新赋值:

targetDir="&&&&&"
echo $targetDir # 输出 &&&&&

# 注意要给变量加双引号,避免特殊字符被拆分
targetDir=$(echo "$targetDir" | tr '&' '+')

echo $targetDir # 输出 +++++

两种方法都能达到你要的效果,推荐用第一种,因为内置操作更快,也更简洁。

备注:内容来源于stack exchange,提问作者Craig Wilcox

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.04.22 10:58:13