Rubyは、シンプルでありながら強力なプログラミング言語であり、コマンドラインインターフェース(CLI)を使用してスクリプトを実行することができます。CLIを利用することで、ユーザーはプログラムに対してさまざまなオプションを指定し、動作をカスタマイズすることができます。本記事では、RubyのCLIにおけるコマンドラインオプションの使い方について詳しく解説します。
コマンドラインオプションは、プログラムを実行する際に指定する追加の引数です。これにより、プログラムの動作を変更したり、特定の機能を有効にしたりすることができます。Rubyでは、これらのオプションを簡単に処理するための方法がいくつか用意されています。
Rubyのスクリプトを実行する際、コマンドラインオプションを指定することができます。以下は、基本的なコマンドラインオプションの例です。
$ ruby my_script.rb --option value
ここで、`my_script.rb`は実行するRubyスクリプトのファイル名、`--option`はオプションの名前、`value`はそのオプションに渡す値です。
Rubyでは、`ARGV`という配列を使用してコマンドライン引数を取得することができます。`ARGV`は、スクリプトに渡されたすべての引数を格納します。
以下の例では、コマンドライン引数を取得し、表示する簡単なスクリプトを作成します。
# my_script.rb puts "コマンドライン引数:" ARGV.each do |arg| puts arg end
このスクリプトを実行すると、指定した引数がすべて表示されます。
$ ruby my_script.rb arg1 arg2 arg3 コマンドライン引数: arg1 arg2 arg3
コマンドラインオプションを解析するための便利なライブラリがいくつかあります。ここでは、`OptionParser`を使ったオプションの解析方法を紹介します。
`OptionParser`は、コマンドラインオプションを簡単に定義し、解析するためのクラスです。以下の例では、`OptionParser`を使用してオプションを定義し、解析する方法を示します。
require 'optparse' options = {} OptionParser.new do |opts| opts.banner = "使用法: my_script.rb [オプション]" opts.on("-nNAME", "--name NAME", "名前を指定します") do |name| options[:name] = name end opts.on("-a", "--age AGE", "年齢を指定します") do |age| options[:age] = age.to_i end opts.on("-h", "--help", "ヘルプを表示します") do puts opts exit end end.parse! puts "名前: #{options[:name]}" if options[:name] puts "年齢: #{options[:age]}" if options[:age]
このスクリプトを実行すると、指定したオプションに応じて名前や年齢を表示します。
$ ruby my_script.rb --name Alice --age 30 名前: Alice 年齢: 30
コマンドラインオプションを解析する際、入力された値が正しいかどうかを確認することが重要です。`OptionParser`を使用すると、オプションのバリデーションを簡単に行うことができます。
以下の例では、年齢が正の整数であることを確認するバリデーションを追加します。
require 'optparse' options = {} OptionParser.new do |opts| opts.banner = "使用法: my_script.rb [オプション]" opts.on("-nNAME", "--name NAME", "名前を指定します") do |name| options[:name] = name end opts.on("-aAGE", "--age AGE", "年齢を指定します") do |age| if age.to_i <= 0 puts "年齢は正の整数でなければなりません。" exit end options[:age] = age.to_i end opts.on("-h", "--help", "ヘルプを表示します") do puts opts exit end end.parse! puts "名前: #{options[:name]}" if options[:name] puts "年齢: #{options[:age]}" if options[:age]
このスクリプトを実行すると、年齢が正の整数でない場合にエラーメッセージが表示されます。
$ ruby my_script.rb --age -5 年齢は正の整数でなければなりません。
複数のオプションを同時に処理することも可能です。`OptionParser`を使用すると、複数のオプションを簡単に定義できます。
require 'optparse' options = {} OptionParser.new do |opts| opts.banner = "使用法: my_script.rb [オプション]" opts.on("-nNAME", "--name NAME", "名前を指定します") do |name| options[:name] = name end opts.on("-aAGE", "--age AGE", "年齢を指定します") do |age| if age.to_i <= 0 puts "年齢は正の整数でなければなりません。" exit end options[:age] = age.to_i end opts.on("-h", "--help", "ヘルプを表示します") do puts opts exit end end.parse! if options[:name] && options[:age] puts "こんにちは、#{options[:name]}さん!あなたの年齢は#{options[:age]}歳です。" else puts "名前と年齢の両方を指定してください。" end
このスクリプトを実行すると、名前と年齢の両方が指定された場合に挨拶が表示されます。
$ ruby my_script.rb --name Alice --age 30 こんにちは、Aliceさん!あなたの年齢は30歳です。
RubyのCLIにおけるコマンドラインオプションは、プログラムの動作を柔軟にカスタマイズするための強力な手段です。`ARGV`を使用して引数を取得し、`OptionParser`を使ってオプションを定義・解析することで、ユーザーにとって使いやすいインターフェースを提供できます。
本記事で紹介した内容を参考にして、あなたのRubyスクリプトにコマンドラインオプションを追加してみてください。これにより、よりインタラクティブで便利なプログラムを作成することができるでしょう。
© 2024 RailsInsights. All rights reserved.