在nohup模式下运行时的不同行为(linux shell)
我尝试在linux shell中进行字符串替换在nohup模式下运行时的不同行为(linux shell),linux,shell,nohup,Linux,Shell,Nohup,我尝试在linux shell中进行字符串替换 str=2011/10/10 echo "$str" a=${str//\//\_} echo $a 它可以在我调用命令时执行:./test.sh 但是如果我在nohup模式下运行它,使用命令:nohup./test.sh& 上面说 ./test.sh:8:不良替代 这里怎么了 谢谢你,因为你没有#/bin/bash在脚本顶部,“nohup”命令使用/bin/sh,而系统的/bin/sh不是bash。赋值为“str”和“a”的第一行和第三行的伯恩
str=2011/10/10
echo "$str"
a=${str//\//\_}
echo $a
它可以在我调用命令时执行:./test.sh
但是如果我在nohup模式下运行它,使用命令:nohup./test.sh&
上面说
./test.sh:8:不良替代
这里怎么了
谢谢你,因为你没有#/bin/bash
在脚本顶部,“nohup”命令使用/bin/sh,而系统的/bin/sh不是bash。赋值为“str”和“a”的第一行和第三行的伯恩语法不正确
由于您可能希望使用BASH,而不是使用严格Bourne语法的shell,因此应该添加#!脚本顶部的行如下所示:
#!/bin/bash
str=2011/10/10
echo "$str"
a=${str//\//\_}
echo $a
因为你没有#/bin/bash
在脚本顶部,“nohup”命令使用/bin/sh,而系统的/bin/sh不是bash。赋值为“str”和“a”的第一行和第三行的伯恩语法不正确
由于您可能希望使用BASH,而不是使用严格Bourne语法的shell,因此应该添加#!脚本顶部的行如下所示:
#!/bin/bash
str=2011/10/10
echo "$str"
a=${str//\//\_}
echo $a
在这里很好(bash 4.2.10(2)和nohup 8.14)。你的脚本只有4行。在这里很好(bash 4.2.10(2)和nohup 8.14)。你的脚本只有4行。我的问题是我有额外的空间,删除它后工作:“#!/bin/bash”->“#!/bin/bash”我的问题是我有额外的空间,删除它后工作:“#!/bin/bash”->“#!/bin/bash”