【问题标题】:Executing an exe in Perl using open()?使用 open() 在 Perl 中执行 exe?
【发布时间】:2013-04-30 09:00:47
【问题描述】:

我无法理解正在执行 exe 的 Perl 脚本的一部分。

open(SYSTEM, "$appl 2>&1 |") || die "$!: $appl";

根据this我可以理解它正在执行一个exe(变量$appl存储了exe的路径及其args),但我不明白2>&1的部分。 AFAIK 它不是我们的 exe 所需的 arg,因此它必须是一些标准约定。知道那是做什么的吗?

PS:我们的 Perl 有点旧,因此 open() 的语法较旧。

【问题讨论】:

标签: perl


【解决方案1】:

您可以在这里看到2>&1 的简要说明:In the shell, what does " 2>&1 " mean?

基本上,它告诉命令行将 EXE 引发的任何错误消息重定向到 perl 脚本可以获取输出的标准输出。

没有这个,或者从命令行运行 EXE 时,它通常会将错误引导到单独的输出 (STDERR) 到出现信息消息的位置 (STDOUT)。

【讨论】:

  • 谢谢吉姆。从您的链接中得到的这个问题的答案太棒了!
【解决方案2】:

它将STDERR 重定向到STDOUT

在程序启动时,与 流 stdin、stdout 和 stderr 分别为 0、1 和 2

Unix File Descriptors

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-11-12
    • 2013-08-26
    • 1970-01-01
    • 2012-08-17
    • 2015-10-10
    • 1970-01-01
    相关资源
    最近更新 更多