7

pryを使用していて、シェルコマンドの出力をキャプチャして操作したいと思います。

たとえば、私が実行した場合

pry(main)> .ls

ファイルのリストをRubyで使用できる配列に入れたいです。

これどうやってするの?

4

2 に答える 2

5

これはかなり古い質問ですが、とにかく答えます。pryコマンドからデータを取得する主な方法は2つあります。1つ目は、コマンドがオプションをtrueに設定するkeep_retval場合ですが、シェルコマンドは設定しません。2つ目は、仮想パイプを使用することです。あなたの例では、これは次のように行うことができます。

fizz = []
.ls | {|listing| fizz = listing.split("\n")} # can also be written as
.ls do |listing|
  fizz = listing.split("\n")
end
于 2012-07-17T20:45:05.447 に答える
3

私はそれがある種の詮索好きな魔法だと思います;-)

何が起こっているのかを簡単に調べた後(私はpryのソースを見ていませんでした)、これを使用することをお勧めします。

`ls`.split("\n")

また

Dir['./*']

このソリューションの良いところは、それが外部で機能することですpry

于 2012-02-14T18:01:55.843 に答える