nohup VERBOSE = 1 perl script.pl

时间:2012-01-11 19:30:34

标签: shell nohup

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

通常我从命令行运行这些

$ VERBOSE=1 perl myperlscript.pl params

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

$ nohup VERBOSE=1 perl myperlscript.pl params 

显然不对,因为设置ENV {VERBOSE}的尝试被解释为nohup&的一个参数。我得到了消息

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

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

3 个答案:

答案 0 :(得分:32)

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

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

答案 1 :(得分:3)

这正是env命令的用途:

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

答案 2 :(得分:1)

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

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