Shell脚本变量替换字符

时间:2011-04-29 14:03:00

标签: shell variables string

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

var=$( echo "$var" | tr '$' ' ')

我怎样才能全部替换它们?

3 个答案:

答案 0 :(得分:15)

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

$ var='abcde$$$$$$$$fff$$gg'
$ echo "${var//$/ }"
abcde        fff  gg

请注意,您应该使用单引号,以便“$”符号不会被插值

答案 1 :(得分:10)

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

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

答案 2 :(得分:5)

老问题,但是我为他们写了这个,在用他们的病毒搜索引擎进行搜索之后,我会来这里你必须像这样使用echo -e

var="$( echo -e "$var" | tr  '$' ' '  )"