Ruby:
Читання аргументів командного рядка
Як це зробити:
Аргументи командного рядка доступні через глобальний масив ARGV. Приклад:
# script.rb
puts "Ви ввели: #{ARGV}"Якщо ви запустите:
ruby script.rb Це тестОтримаєте:
Ви ввели: ["Це", "тест"]Отримання конкретних аргументів:
# specific_arg.rb
puts "Перший аргумент: #{ARGV[0]}"
puts "Другий аргумент: #{ARGV[1]}"Запуск:
ruby specific_arg.rb раз дваРезультат:
Перший аргумент: раз
Другий аргумент: дваВикористання OptionParser для аргументів з іменами:
require 'optparse'
options = {}
OptionParser.new do |opts|
opts.banner = "Використання: script.rb [опції]"
opts.on("-n", "--name NAME", "Введіть ім'я") do |n|
options[:name] = n
end
opts.on("-a", "--age AGE", "Введіть вік") do |a|
options[:age] = a
end
end.parse!
puts "Ім'я: #{options[:name]}"
puts "Вік: #{options[:age]}"Запуск:
ruby script.rb --name "Олег" --age "35"Результат:
Ім'я: Олег
Вік: 35Поглиблений розгляд:
Аргументи командного рядка - не новинка, вони існують з моменту появи перших операционних систем. У Ruby, ARGV - це простий спосіб отримання даних, але існують альтернативи.
OptionParserє більш потужним для іменованих аргументів та валідації;ENVмістить змінні середовища, ящо ще один спосіб модифікації поведінки програми.getsдозволяє читати ввод з консолі після запуску програми.
Варто зберегти аргументи в змінну, якщо плануєте їх часто використовувати - це може зменшити можливі помилки і поліпшити читабельність.
Подивитися також:
- OptionParser - документація по
OptionParser. - Environment Variables in Ruby - стаття з роз’ясненням роботи зі змінними середовища.
- The ARGF Object - документація по ARGF, об’єкт який представляє поєднання
ARGVта$stdin.