日本生まれのプログラミング言語「Ruby」。
Webフレームワーク「Ruby on Rails」のプログラミング言語として人気を集めていますが、元々はPerlを置き換える事が出来る「グルー言語」としても注目を集めていました。
今回、開発者のLucas Seiki Oshiro氏は、シェルスクリプト作成用のプログラミング言語としても優れているRubyの特徴を、ブログ記事「Ruby: a great language for shell scripts!」で紹介しています。
この記事によると、Rubyの優れた特徴の1つはバッククォートを使って他のコマンドを簡単に呼び出し、その結果を格納できる点にあります。また実行結果を、$?
で簡単にコマンドの終了ステータスを取得できるのも便利な機能だとされています。
`ls` my_date=`date` `true` puts $? # 0 `false` puts $? # 1
Rubyは静的な型付き言語ではないものの型は存在し、オブジェクト指向言語であるためBashスクリプトと比較して、安全にスクリプトを作成することできるというメリットもあります。
map、select、reduce、flatmapなどの関数を使ってコマンド出力を簡単に加工することもでき、強力な正規表現によって、例えばgitブランチの名前を取得するといった処理を簡単に実装することもできるのです。
current_branch_regex = /^\* (\S+)/ output_lines = `git branch`.lines output_lines.each do |line| if line =~ current_branch_regex # match the string with the regex puts $1 # prints the match of the first group end end
また、スレッドを作成したり、組み込みのファイルやディレクトリ操作機能によって、簡単にファイルシステムの操作を行うこともできます。
exists = File.exist? 'My File' # methods that return booleans end in ? file_content = File.open('My File').read File.delete 'My File' # parentheses are optional if it's not ambiguous
同氏は、複雑なシェルスクリプトの代わりとしてRubyを使うことを検討することを推奨しています。
RubyをRailsでしか使っていなかったという開発者のかたにとって、Rubyの便利な機能を改めて見直すきっかけとなりそうです。