Puno Rubin skripte nemaju tekst ili grafička sučelja. Jednostavno trče, rade svoj posao i onda izlaze. Za komunikaciju s tim skriptama da bi se promijenilo njihovo ponašanje moraju se koristiti argumenti naredbenog retka.
Naredbeni redak standardni je način rada za UNIX naredbe, a budući da se Ruby naširoko koristi UNIX i UNIX-ovi sustavi (poput Linuxa i macOS-a), prilično je standardno susresti se s ovom vrstom program.
Kako pružiti argumente naredbenog retka
Argumente Ruby skripte u program Ruby prenosi ljuska, program koji na terminalu prihvaća naredbe (poput bash).
U naredbenoj liniji bilo koji tekst koji slijedi ime skripte smatra se argumentom naredbenog retka. Svaka riječ ili niz odvojeni razmacima proslijedit će se kao poseban argument programu Ruby.
Sljedeći primjer prikazuje ispravnu sintaksu koja se koristi za pokretanje test.rb Ruby skriptu iz naredbenog retka s argumentima test1 i test2.
$ ./test.rb test1 test2
Možete naići na situaciju u kojoj trebate proslijediti argument Ruby programu, ali u naredbi postoji razmak. U početku se čini nemogućim jer ljuska razdvaja argumente na razmake, ali za to postoji odredba.
Svi argumenti u dvostrukim navodnicima neće biti odvojeni. Dvostruke navodnike ljuska prije uklanjanja u Ruby program.
Sljedeći primjer prenosi jedan argument za test.rb Ruby skripta, test1 test2:
$ ./test.rb "test1 test2"
Kako koristiti argumente naredbenog retka
U svojim Ruby programima možete pristupiti svim argumentima naredbenog retka koji su prošli pored ljuske s argv posebna varijabla. argv je varijabla Array koja kao nizove sadrži svaki argument koji je prošao pored ljuske.
Ovaj program ponavlja preko argvred i ispisuje njegov sadržaj:
#! / usr / bin / env rubin. ARGV.each učiniti | a | stavlja "Argument: # {a}" kraj
Slijedi izvadak bash sesije pokretanjem ove skripte (spremljen kao datoteka test.rb) s raznim argumentima:
$ ./test.rb test1 test2 "tri četiri" Argument: test1. Argument: test2. Argument: tri četiri