【问题标题】:Ruby IO::popen and crossbowRuby IO::popen 和弩
【发布时间】:2011-06-29 17:08:09
【问题描述】:

http://www.ruby-doc.org/core/classes/IO.html#M000880

希望使用这种方法(我认为)

要在 ruby​​ 中运行这个命令行命令:

$CROSSBOW_HOME/cb_emr \
    --name "Crossbow-Ecoli" \ 
    --preprocess \ 
    --input=s3n://bgs.crossbow-01/example/e_coli/small.manifest \ 
    --output=s3n://bgs.crossbow-01/example/e_coli/output_small \ 
    --reference=s3n://

以上是我在命令行中输入直接从控制台运行的

所以我很确定我的 IO 方法是正确的......但是我在将上述代码转换为输入时相当迷茫

【问题讨论】:

    标签: ruby methods io


    【解决方案1】:

    这应该可以解决问题:

    command =<<END_OF_COMMAND
    #{ENV["CROSSBOW_HOME"]}/cb_emr \
        --name "Crossbow-Ecoli" \ 
        --preprocess \ 
        --input=s3n://bgs.crossbow-01/example/e_coli/small.manifest \ 
        --output=s3n://bgs.crossbow-01/example/e_coli/output_small \ 
        --reference=s3n://
    END_OF_COMMAND
    
    IO.popen(command) do |handle|
      handle.each_line do |line|
         puts line
      end
    end
    

    我正在遍历输出的每一行,因为我猜你可能想以某种方式处理它。

    【讨论】:

    • 所以是的,这看起来会起作用...... =
    • 这是一个多行字符串。 END_OF_COMMAND 指定字符串的结束位置。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多