【一人 Ruby Advent Calendar 2017】` メソッドで外部コマンドの実行結果を取得する【16日目】
一人 Ruby Advent Calendar 2017 16日目の記事になります。
遅れてしまいすみません。
Ruby の `
メソッド
Ruby では外部コマンドを呼び出す手段がいくつかあるんですが、以下のように `
メソッドを使用することで `{command}`
の結果を戻り値として取得することができます。
p `ruby --version` # => "ruby 2.4.2p198 (2017-09-14 revision 59899) [x64-mingw32]\n" p `node --version` # => "v8.7.0\n"
標準入力など渡すことはできませんが、簡単なコマンドの出力結果を取得する場合に便利です。
`
メソッドを再定義する
さて、この `
なんですが、実は Kernel
のメソッドとして定義されており、ユーザ側で再定義することもできます。
module Kernel def ` command p command.class # => String "#{command} --version" end end p `ruby` # => "ruby --version"
べんりそう。
まとめ
`{コマンド名}`
で外部コマンドの実行結果を取得することができるできる`
はKernel
のメソッドなので拡張することができる
べんり。