Shell nohup VERBOSE=1 perl script.pl

Shell nohup VERBOSE=1 perl script.pl,shell,nohup,Shell,Nohup,我有一个perl脚本,可以为其设置ENV变量以直接指定输出 e、 g.$debug、$verbose、$develop等 通常我从命令行运行这些 $ VERBOSE=1 perl myperlscript.pl params 我现在想用nohup运行它们。使用命令行 $ nohup VERBOSE=1 perl myperlscript.pl params 显然是不对的,因为设置ENV{VERBOSE}的尝试被解释为nohup的一个参数&我得到消息 nohup:无法运行命令“VERBOSE

我有一个perl脚本,可以为其设置ENV变量以直接指定输出 e、 g.$debug、$verbose、$develop等

通常我从命令行运行这些

$ VERBOSE=1 perl myperlscript.pl params
我现在想用nohup运行它们。使用命令行

$ nohup VERBOSE=1 perl myperlscript.pl params 
显然是不对的,因为设置ENV{VERBOSE}的尝试被解释为nohup的一个参数&我得到消息

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


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

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

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

尝试将所有命令组合到shell脚本中,并按如下方式运行: nohup/path/to/script.sh

或者您可以使用导出: 导出详细信息=1 然后:
nohup perl myperlscript.pl参数这正是
env
命令的作用:

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