Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/25.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在nohup模式下运行时的不同行为(linux shell)_Linux_Shell_Nohup - Fatal编程技术网

在nohup模式下运行时的不同行为(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”的第一行和第三行的伯恩

我尝试在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”的第一行和第三行的伯恩语法不正确

由于您可能希望使用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”