Mulți Rubin scripturile nu au text sau interfețe grafice. Pur și simplu aleargă, își fac treaba și apoi ies. Pentru a comunica cu aceste scripturi pentru a-și schimba comportamentul, trebuie utilizate argumente din linia de comandă.
Linia de comandă este modul de operare standard pentru comenzile UNIX și, deoarece Ruby este utilizat pe scară largă Sisteme UNIX și UNIX (cum ar fi Linux și macOS), este destul de standard să întâlnești acest tip de program.
Cum se furnizează argumente în linia de comandă
Argumentele scriptului Ruby sunt transmise programului Ruby de către shell, programul care acceptă comenzi (cum ar fi bash) pe terminal.
Pe linia de comandă, orice text care urmează numele scriptului este considerat un argument de linie de comandă. Separat de spații, fiecare cuvânt sau șir va fi transmis ca un argument separat la programul Ruby.
Următorul exemplu arată sintaxa adecvată pe care trebuie să o utilizați pentru a lansa test.rb Script Ruby dintr-o linie de comandă cu argumentele test1 și test2.
$ ./test.rb test1 test2
Puteți întâlni o situație în care trebuie să treceți un argument unui program Ruby, dar există un spațiu în comandă. La început pare imposibil, deoarece shell-ul separă argumentele pe spații, dar există o prevedere pentru acest lucru.
Orice argumente între ghilimele duble nu vor fi separate. Ghilimelele duble sunt eliminate de coajă înainte de a le transmite programului Ruby.
Următorul exemplu trece un singur argument către test.rb Script de rubin, test1 test2:
$ ./test.rb "test1 test2"
Cum se utilizează argumente în linia de comandă
În programele dvs. Ruby, puteți accesa orice argumente din linia de comandă transmise de shell cu ajutorul argv variabilă specială. argv este o variabilă Array care ține, ca șiruri, fiecare argument trecut de shell.
Acest program iterează peste argvmulțime și tipărește conținutul său:
#! / usr / bin / env ruby. ARGV.each do | a | pune „Argument: # {a}” Sfârșit
Următorul este un extras dintr-o sesiune bash care lansează acest script (salvat ca fișier test.rb) cu o varietate de argumente:
$ ./test.rb test1 test2 "trei patru" Argument: test1. Argument: test2. Argument: trei patru