2011-06-29 78 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