在nohup模式下运行时的不同行为(linux shell)

时间:2011-10-20 03:54:09

标签: linux shell nohup

我尝试在linux shell中进行字符串替换,

str=2011/10/10
echo "$str"
a=${str//\//\_}
echo $a

我可以在调用命令时执行:./ test.sh 但如果我在nohup模式下运行它,请使用命令:nohup ./test.sh& amp;

它说 ./test.sh:8:错误的替换

这里有什么问题?

由于

1 个答案:

答案 0 :(得分:6)

由于脚本顶部没有#!/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