Бързо ръководство за аргументите на командния ред в Ruby

много рубин скриптите нямат текст или графични интерфейси. Те просто бягат, вършат си работата и след това излизат. За да комуникират с тези скриптове, за да променят поведението си, трябва да се използват аргументи от командния ред.

Командният ред е стандартният режим на работа за UNIX команди и тъй като Ruby се използва широко UNIX и UNIX-подобни системи (като Linux и macOS) е доста стандартно да се срещаме с този тип програма.

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

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

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

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

$ ./test.rb test1 test2

Може да срещнете ситуация, в която трябва да предадете аргумент на Ruby програма, но има място в командата. В началото изглежда невъзможно, тъй като обвивката разделя аргументи на интервали, но има разпоредба за това.

instagram viewer

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

Следващият пример предава един аргумент на test.rb Руби сценарий, test1 test2:

$ ./test.rb "test1 test2"

Как да използвате аргументите на командния ред

Във вашите Ruby програми можете да получите достъп до всички аргументи на командния ред, предадени от черупката с ARGV специална променлива. ARGV е променлива Array, която съдържа като низове всеки аргумент, предаден от черупката.

Тази програма повтаря ARGVмасив и отпечатва съдържанието му:

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

По-долу е откъс от баш сесия, стартираща този скрипт (запазен като файл test.rb) с различни аргументи:

$ ./test.rb test1 test2 "три четири" Аргумент: тест1. Аргумент: тест2. Аргумент: три четири