【问题标题】:nohup VERBOSE=1 perl script.plnohup VERBOSE=1 perl script.pl
【发布时间】:2012-02-08 04:10:54
【问题描述】:

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

【问题讨论】:

    标签: shell nohup


    【解决方案1】:

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

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

    【讨论】:

      【解决方案2】:

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

      或者您可以使用导出: 导出详细=1 然后: nohup perl myperlscript.pl 参数

      【讨论】:

        【解决方案3】:

        这正是env 命令的用途:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-01-09
          • 1970-01-01
          • 1970-01-01
          • 2017-10-20
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多