bash中的stringreplace – 错误的replace错误

我新手在bash脚本,但我不明白为什么它不工作

#!/bin/bash foo=foobarfoobar echo ${foo//bar/baz} 

第3行错误的replace错误

这个替换在Bash 4.2.8中工作正常(根据文档看起来很好)。

我最好的猜测是你实际上并没有使用Bash – 你怎么调用脚本? 如果你正在做sh script.sh你可能会用Dash或类似的东西来运行它(而Dash的确在第3行给出了替换错误)。 尝试显式运行它与Bash( bash script.sh )。

如果事实证明你实际上在使用Dash,那么有一些关于差异的有用信息,以及如何返回使用Bash(如果你想的话): https : //wiki.ubuntu.com/DashAsBinSh

 $ foo=foobarfoobar $ echo ${foo}/bar/baz foobarfoobar/bar/baz 

只是你有错误的地方,但是我不是在BASH的专家,所以也许这不是你要去的影响..