nohup VERBOSE=1 perl script.pl

16

我有一个Perl脚本,可以设置环境变量以指定特定的输出,例如$debug,$verbose,$develop等。

通常我从命令行运行这些脚本。

$ VERBOSE=1 perl myperlscript.pl params

我现在想要使用nohup来运行它们。使用命令行

$ nohup VERBOSE=1 perl myperlscript.pl params 

很明显不正确,因为尝试设置ENV{VERBOSE}被解释为nohup的参数,我收到了以下信息:

nohup: failed to run command `VERBOSE=1': No such file or directory

在Linux系统上应该使用什么语法?

3个回答

33

在调用nohup之前设置环境变量,它将在nohup执行(exec()s)(用perl替换自身)时保留。

$ VERBOSE=1 nohup perl myscript.pl params ...

4

这正是env命令的用途:

$ env VAR1=VAL1 VAR2=VAL2 nohup perl myperlscript.pl params &

1
尝试将所有命令组合成shell脚本并像这样运行它: nohup /path/to/script.sh

或者您可以使用export: export VERBOSE=1 然后: nohup perl myperlscript.pl params


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接