我试着做串替换在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
许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top