Краткое руководство по аргументам командной строки в Ruby

Много Рубин сценарии не имеют текста или графические интерфейсы. Они просто бегут, делают свою работу и затем выходят. Для взаимодействия с этими сценариями с целью изменения их поведения необходимо использовать аргументы командной строки.

Командная строка является стандартным режимом работы для команд UNIX, и поскольку Ruby широко используется в UNIX и UNIX-подобные системы (такие как Linux и macOS), довольно стандартно встречать этот тип программа.

Как предоставить аргументы командной строки

Аргументы сценария Ruby передаются программе Ruby оболочкой, программой, которая принимает команды (например, bash) на терминале.

В командной строке любой текст, следующий за именем скрипта, считается аргументом командной строки. Разделенные пробелами каждое слово или строка будут переданы в качестве отдельного аргумента в программу Ruby.

В следующем примере показан правильный синтаксис, используемый для запуска test.rb Ruby-скрипт из командной строки с аргументами test1 и test2.

$ ./test.rb test1 test2
instagram viewer

Вы можете столкнуться с ситуацией, когда вам нужно передать аргумент в программу Ruby, но в команде есть пробел. Сначала это кажется невозможным, поскольку оболочка разделяет аргументы по пробелам, но для этого есть условие.

Любые аргументы в двойных кавычках не будут разделены. Двойные кавычки удаляются оболочкой перед передачей ее программе Ruby.

В следующем примере передается один аргумент test.rb Ruby скрипт, test1 test2:

$ ./test.rb "test1 test2"

Как использовать аргументы командной строки

В ваших программах на Ruby вы можете получить доступ к любым аргументам командной строки, передаваемым оболочкой с помощью ARGV специальная переменная. ARGV переменная Array, которая содержит в виде строк каждый аргумент, передаваемый оболочкой

Эта программа перебирает ARGVмассив и распечатывает его содержимое:

#! / usr / bin / env ruby. ARGV.each do | a | ставит "Аргумент: # {a}" конец

Ниже приведена выдержка из сеанса bash, запускающего этот скрипт (сохраняется как файл test.rb) с различными аргументами:

$ ./test.rb test1 test2 "три четверки" Аргумент: test1. Аргумент: test2. Аргумент: три четыре
instagram story viewer