我是bash脚本中的新手,但我不明白为什么它不起作用
#!/bin/bash
foo=foobarfoobar
echo ${foo//bar/baz}
第3行的错误替换错误
答案 0 :(得分:50)
这种替换在Bash 4.2.8中运行良好(根据文档看起来很好)。
我最好的猜测是你实际上并没有使用Bash - 你是如何调用脚本的?如果你正在做sh script.sh
,你可能正在用Dash或类似的东西运行它(而Dash确实在第3行给出了替换错误)。尝试使用Bash(bash script.sh
)显式运行它。
如果事实证明你实际上正在使用Dash,那么有关于这些差异的一些有用信息以及如何在此处返回使用Bash(如果你愿意):https://wiki.ubuntu.com/DashAsBinSh
答案 1 :(得分:-1)
$ foo=foobarfoobar
$ echo ${foo}/bar/baz
foobarfoobar/bar/baz
只是你把牙箍放在错误的地方,但是我不是BASH的专家,所以也许这不是你想要的效果..