pryを使用していて、シェルコマンドの出力をキャプチャして操作したいと思います。
たとえば、私が実行した場合
pry(main)> .ls
ファイルのリストをRubyで使用できる配列に入れたいです。
これどうやってするの?
これはかなり古い質問ですが、とにかく答えます。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
私はそれがある種の詮索好きな魔法だと思います;-)
何が起こっているのかを簡単に調べた後(私はpryのソースを見ていませんでした)、これを使用することをお勧めします。
`ls`.split("\n")
また
Dir['./*']
このソリューションの良いところは、それが外部で機能することですpry