题
我试着做串替换在linux的外壳,
str=2011/10/10
echo "$str"
a=${str//\//\_}
echo $a
它可以执行时,我援引的命令:./test.sh 但是,如果我运行了它在必须被显模式,使用的命令:必须被显./test.sh &
它说, ./test.sh:8:糟糕的替代
什么是错误在这里?
感谢
解决方案
因为你没有 #!/bin/bash
在你的脚本,'必须被显'的命令是使用/bin/sh和系统/bin/sh不是抨击。你的第一和第三线在分配'str'和'a'是不正确的Bourne的语法。
因为你可能想要使用BASH并不是一个外壳,使用严格的Bourne法,应该添加一个#!线在你脚本是这样的:
#!/bin/bash
str=2011/10/10
echo "$str"
a=${str//\//\_}
echo $a
不隶属于 StackOverflow