Krótki przewodnik po argumentach wiersza poleceń w języku Ruby

Wiele Rubin skrypty nie mają tekstu lub interfejsy graficzne. Po prostu biegają, wykonują swoją pracę, a następnie wychodzą. Aby komunikować się z tymi skryptami w celu zmiany ich zachowania, należy użyć argumentów wiersza polecenia.

Wiersz poleceń jest standardowym trybem działania poleceń UNIX, a ponieważ Ruby jest szeroko stosowany Systemy UNIX i systemy podobne do UNIX (takie jak Linux i macOS) są dość standardowym rozwiązaniem tego typu program.

Jak dostarczyć argumenty wiersza poleceń

Argumenty skryptów Ruby są przekazywane do programu Ruby przez powłokę, program, który akceptuje polecenia (takie jak bash) na terminalu.

W wierszu polecenia każdy tekst następujący po nazwie skryptu jest uważany za argument wiersza polecenia. Oddzielone spacjami, każde słowo lub ciąg znaków zostanie przekazany jako osobny argument do programu Ruby.

Poniższy przykład pokazuje prawidłową składnię, której należy użyć do uruchomienia test.rb Skrypt Ruby z wiersza polecenia z argumentami test1 i test2.

$ ./test.rb test1 test2
instagram viewer

Możesz napotkać sytuację, w której musisz przekazać argument do programu Ruby, ale w poleceniu jest spacja. Z początku wydaje się to niemożliwe, ponieważ powłoka oddziela argumenty na spacje, ale istnieje na to przepis.

Wszelkie argumenty w podwójnych cudzysłowach nie zostaną rozdzielone. Podwójne cudzysłowy są usuwane przez powłokę przed przekazaniem jej do programu Ruby.

Poniższy przykład przekazuje pojedynczy argument do test.rb Skrypt Ruby, test1 test2:

$ ./test.rb „test1 test2”

Jak korzystać z argumentów wiersza polecenia

W swoich programach Ruby możesz uzyskać dostęp do argumentów wiersza poleceń przekazywanych przez powłokę za pomocą ARGV specjalna zmienna. ARGV jest zmienną Array, która przechowuje jako ciągi każdy argument przekazywany przez powłokę.

Ten program iteruje po ARGVszyk i drukuje jego zawartość:

#! / usr / bin / env ruby. ARGV.each do | wstawia „Argument: # {a}” koniec

Poniżej znajduje się fragment sesji bash uruchamiającej ten skrypt (zapisany jako plik test.rb) z różnymi argumentami:

$ ./test.rb test1 test2 „trzy cztery” Argument: test1. Argument: test2. Argument: trzy cztery