Daug Rubinas scenarijai neturi teksto arba grafinės sąsajos. Jie tiesiog bėga, daro savo darbą ir tada išeina. Norint bendrauti su šiais scenarijais, norint pakeisti jų elgesį, reikia naudoti komandinės eilutės argumentus.
Komandų eilutė yra standartinis UNIX komandų veikimo būdas, kadangi „Ruby“ yra plačiai naudojamas Į UNIX ir panašias sistemas (tokias kaip „Linux“ ir „MacOS“) susidurti su tokio tipo sistemomis yra gana įprasta programa.
Kaip pateikti komandinės eilutės argumentus
„Ruby“ scenarijaus argumentus „Ruby“ programai perduoda „shell“ - programa, kuri terminale priima komandas (tokias kaip bash).
Komandos eilutėje bet koks tekstas, esantis po scenarijaus pavadinimu, laikomas komandos eilutės argumentu. Atskirti tarpais, kiekvienas žodis ar eilutė bus perduoti kaip atskiras argumentas „Ruby“ programai.
Šis pavyzdys parodo tinkamą sintaksę, kurią reikia naudoti paleidžiant test.rb Ruby scenarijus iš komandinės eilutės su argumentais testas1 ir test2.
$ ./test.rb test1 test2
Galite susidurti su situacija, kai jums reikia perduoti argumentą „Ruby“ programai, tačiau komandoje yra vietos. Iš pradžių atrodo neįmanoma, nes apvalkalas atskiria argumentus dėl erdvių, tačiau tam yra nuostata.
Bet kokie argumentai dvigubose kabutėse nebus atskirti. Dvigubos citatos apvalkalu pašalinamos prieš perduodant ją „Ruby“ programai.
Šis pavyzdys pateikia vieną argumentą test.rb „Ruby“ scenarijus, test1 test2:
$ ./test.rb „test1 test2“
Kaip naudoti komandinės eilutės argumentus
Savo „Ruby“ programose galite pasiekti bet kokius komandinės eilutės argumentus, kuriuos praleido apvalkalas su ARGV specialusis kintamasis. ARGV yra masyvo kintamasis, kuris kaip eilutes turi kiekvieną apvalkalo pateiktą argumentą.
Ši programa kartojama per ARGVmasyvas ir išspausdina jo turinį:
#! / usr / bin / env rubinas. ARGV.kaip padaryti | a | pateikia „Argumentas: # {a}“ galas
Žemiau yra ištrauka iš bash sesijos, paleidžiančios šį scenarijų (išsaugotą kaip failą) test.rb) su įvairiais argumentais:
$ ./test.rb test1 test2 „trys keturi“ Argumentas: testas1. Argumentas: 2 testas. Argumentas: trys keturi