我尝试在linux shell中进行字符串替换,
str=2011/10/10
echo "$str"
a=${str//\//\_}
echo $a
它可以在我调用command:./test.sh时执行,但是如果我在nohup模式下运行它,使用command :nohup./test.sh&
上面写着。/test.sh: 8:错误的替换
这是怎么回事?
谢谢
发布于 2011-10-20 14:15:30
因为您的脚本顶部没有#!/bin/bash
,所以'nohup‘命令使用的是/bin/sh,而您系统的/bin/sh不是BASH。赋值'str‘和'a’的第一行和第三行的Bourne语法不正确。
由于您可能希望使用BASH,而不是使用严格Bourne语法的shell,因此应该添加一个#!脚本顶部的一行代码,如下所示:
#!/bin/bash
str=2011/10/10
echo "$str"
a=${str//\//\_}
echo $a
https://stackoverflow.com/questions/7830962
复制相似问题