代码之家  ›  专栏  ›  技术社区  ›  Lucas Meijer

如何在Perl中不中继stdout的情况下执行system()。

  •  5
  • Lucas Meijer  · 技术社区  · 14 年前

    我怎么用珍珠做

    系统(“xcodebuild”);

    只中继stderr,不中继stdout。(xcodebuild有很多冗长的内容,我想去掉,但是当出现问题时,我仍然想知道它是什么)

    2 回复  |  直到 9 年前
        1
  •  5
  •   Greg Bacon    14 年前

    将标准输出重定向到 /dev/null :

    system("xcodebuild >/dev/null") == 0
      or warn "$0: xcodebuild exited " . ($? >> 8) . "\n";
    
        2
  •  2
  •   Andreas Louv    9 年前
    system("xcodebuild >> /dev/null");
    

    …当然,假设您使用当前的系统调用机制获得了所有stderr内容。否则,您需要将stdout重定向到devnull,stderr重定向到stdout。