我新手在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的专家,所以也许这不是你要去的影响..