我有一个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机器上运行它。
答案 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