【一人 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のメソッドなので拡張することができる
べんり。