16

我有一个 perl 脚本,可以将 ENV 变量设置为直接输出特定的输出,例如 $debug、$verbose、$develop 等

通常我从命令行运行这些

$ VERBOSE=1 perl myperlscript.pl params

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

$ nohup VERBOSE=1 perl myperlscript.pl params 

显然是不对的,因为设置 ENV{VERBOSE} 的尝试被解释为 nohup 的参数,我得到了 msg

nohup:无法运行命令“VERBOSE=1”:没有这样的文件或目录

这里的正确语法是什么?我正在尝试在 linux 机器上运行它。

4

3 回答 3

33

调用前设置环境变量, exec()s(替换为)nohup时会保留。nohupperl

$ VERBOSE=1 nohup perl myscript.pl params ...
于 2012-01-11T19:38:41.480 回答
4

这正是该env命令的用途:

$ env VAR1=VAL1 VAR2=VAL2 nohup perl myperlscript.pl params &
于 2012-01-11T21:50:14.057 回答
1

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

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

于 2012-01-11T19:39:10.053 回答