Shell脚本变量替换字符

the*_*ux4 7 string variables shell

我有一个变量var ="abcde $$$$$$$$ fff $$ gg".我想用空格替换所有$'但是下面只放了一个空格

var=$( echo "$var" | tr '$' ' ')
Run Code Online (Sandbox Code Playgroud)

我该如何更换它们?

gho*_*g74 16

你可以在不调用外部命令的情况下替换(使用bash)

$ var='abcde$$$$$$$$fff$$gg'
$ echo "${var//$/ }"
abcde        fff  gg
Run Code Online (Sandbox Code Playgroud)

请注意,您应该使用单引号,以便不会插入"$"符号


l0b*_*0b0 11

适合我.您需要使用单引号或转义美元符号,否则它们将从双引号字符串中删除:

echo 'abcde$$$$$$$$fff$$gg' | tr '$' ' '
abcde        fff  gg

echo "abcde\$\$\$\$\$\$\$\$fff\$\$gg" | tr '$' ' '
abcde        fff  gg

echo abcde\$\$\$\$\$\$\$\$fff\$\$gg | tr '$' ' '
abcde        fff  gg

echo $'abcde$$$$$$$$fff$$gg' | tr '$' ' '
abcde        fff  gg
Run Code Online (Sandbox Code Playgroud)


Swe*_*ter 7

老问题,但我写这为他们藿会来到这里与他们的diseired搜索引擎进行搜索后,您必须使用echo -e这样的

var="$( echo -e "$var" | tr  '$' ' '  )"
Run Code Online (Sandbox Code Playgroud)