【问题标题】:How can I capture the output of a shell script invoked from Ruby?如何捕获从 Ruby 调用的 shell 脚本的输出?
【发布时间】:2010-02-12 17:04:46
【问题描述】:

我正在使用 /etc/aliases 将电子邮件发送到“script@localhost”:

script:   root,"|/path-to-my-script"

这会在 STDIN 上收到一封电子邮件,我正在对其进行解析并将其传递给其他脚本。

#!/usr/bin/ruby
email = ARGF.read
...parse...parse-some-more...
system("/my-other-script.sh #{email.todo}")

捕获my-other-script.sh 的 STDOUT 以进行故障排除的最佳方法是什么?

【问题讨论】:

    标签: ruby bash stdout


    【解决方案1】:

    你看过IO.popen了吗?

    我不是专家,但可能值得一看。

    【讨论】:

      【解决方案2】:

      我要去:

      out = `/my-other-script.sh #{email.todo} 2>&1`
      log.debug $?.exitstatus
      log.debug out
      

      似乎有效

      【讨论】:

        猜你喜欢
        • 2010-11-26
        • 2014-05-11
        • 1970-01-01
        • 2019-12-29
        • 1970-01-01
        • 2022-11-16
        • 1970-01-01
        • 1970-01-01
        • 2018-06-09
        相关资源
        最近更新 更多