2011-06-29 40 views
0

http://www.ruby-doc.org/core/classes/IO.html#M000880红宝石IO :: POPEN和弩

展望红宝石内使用此方法(我认为)

要运行此命令行命令,从:

$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方法正确...但我相当迷失在将上面的代码翻译成我NPUT

回答

0

这应该做的伎俩:

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 

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

+0

所以是啊这看起来像它的工作......这是怎么回事与= << END_OF_COMMAND正在进行的操作我已经看到<<用于添加项到数组的末尾..但从来没有一个平等在它之前 –

+0

这是一个多行字符串。 END_OF_COMMAND指定字符串结束的位置。 – Senthess