Kratek vodnik za argumente ukazne vrstice v Rubyju

Mnogi Ruby skripte nimajo besedila oz grafični vmesniki. Preprosto bežijo, opravijo svoje delo in nato izstopijo. Za komunikacijo s temi skripti, da bi spremenili njihovo vedenje, je treba uporabiti argumente ukazne vrstice.

Ukazna vrstica je standardni način delovanja ukazov UNIX in ker se Ruby pogosto uporablja UNIX in UNIX podobni sistemi (kot sta Linux in macOS) je precej standardno, da se srečujemo s to vrsto program.

Kako zagotoviti argumente ukazne vrstice

Argumente skripta Ruby posreduje programu Ruby lupina, program, ki na terminalu sprejme ukaze (na primer bash).

V ukazni vrstici se vsako besedilo, ki sledi imenu skripta, šteje za argument ukazne vrstice. Ločena s presledki bo vsaka beseda ali niz podana kot ločen argument programu Ruby.

Naslednji primer prikazuje pravilno sintakso, ki jo je treba uporabiti za zagon test.rb Ruby skript iz ukazne vrstice z argumenti test1 in test2.

$ ./test.rb test1 test2

Morda naletite na situacijo, ko morate argument posredovati programu Ruby, vendar je v ukazu presledek. Na začetku se zdi nemogoče, ker lupina loči argumente na presledke, vendar za to obstaja določba.

instagram viewer

Argumenti v dvojnih navedbah ne bodo ločeni. Dvojne narekovaje lupina odstrani, preden jo pošlje v program Ruby.

Naslednji primer posreduje en argument argumentu test.rb Ruby skript, test1 test2:

$ ./test.rb "test1 test2"

Kako uporabljati argumente ukazne vrstice

V svojih programih Ruby imate dostop do vseh argumentov ukazne vrstice, ki jih lupina posreduje z ARGV posebna spremenljivka. ARGV je spremenljivka Array, ki kot nizi vsebuje vsak argument, ki ga prenese lupina.

Ta program predvaja nad ARGVmatrika in natisne njegovo vsebino:

#! / usr / bin / env rubin. ARGV.each do | a | postavi "Argument: # {a}" konec

Sledi odlomek bash seje zagon tega skripta (shranjen kot datoteka test.rb) z različnimi argumenti:

$ ./test.rb test1 test2 "tri štiri" Argument: test1. Argument: test2. Argument: trije štirje
instagram story viewer