monet Rubiini skripteissä ei ole tekstiä tai graafiset rajapinnat. He vain juoksevat, tekevät työnsä ja poistuvat sitten. Kommunikointiin näiden komentosarjojen kanssa niiden käyttäytymisen muuttamiseksi on käytettävä komentoriviargumentteja.
Komentorivi on UNIX-komentojen tavanomainen toimintatapa, ja koska Rubya käytetään laajasti UNIX- ja UNIX-kaltaiset järjestelmät (kuten Linux ja macOS) ovat melko tavanomaisia kohtaamaan tämäntyyppiset järjestelmät ohjelmoida.
Kuinka toimittaa komentoriviargumentit
Kuori välittää Ruby-komentosargumentit Ruby-ohjelmaan, ohjelma, joka hyväksyy komennot (kuten bash) terminaalissa.
Komentorivillä mitä tahansa komentosarjan nimeä seuraavaa tekstiä pidetään komentoriviargumenttina. Erotettuna välilyönteillä, jokainen sana tai merkkijono siirretään erillisenä argumenttina Ruby-ohjelmalle.
Seuraava esimerkki näyttää oikean syntaksin, jota käytetään test.rb Ruby-komentosarjan komentoriviltä argumentit test1 ja test2.
$ ./test.rb test1 test2
Voit kohdata tilanteen, jossa joudut siirtämään argumentin Ruby-ohjelmalle, mutta komennossa on tilaa. Aluksi se näyttää mahdottomalta, koska kuori erottaa väitteet välilyönneistä, mutta tähän on varaus.
Kaikkia kaksoislainausmerkkejä koskevia argumentteja ei eroteta. Tuplalainaukset poistaa kuori ennen siirtämistä Ruby-ohjelmaan.
Seuraava esimerkki välittää yhden argumentin test.rb Ruby-kirjoitus, testi1 testi2:
$ ./test.rb "test1 test2"
Kuinka käyttää komentoriviargumentteja
Ruby-ohjelmissa voit käyttää kaikkia komentoriviargumentteja, jotka kuori on ohittanut argv erityinen muuttuja. argv on taulukkomuuttuja, joka pitää merkkijonona jokaista kuoren ohittamaa argumenttia.
Tämä ohjelma toistuu argvryhmä ja tulostaa sen sisällön:
#! / usr / bin / env ruby. ARGV.each do | a | asettaa argumentin: # {a} pää
Seuraava on katkelma bash-istunnosta, joka käynnistää tämän komentosarjan (tallennetaan tiedostona) test.rb) useilla perusteilla:
$ ./test.rb test1 test2 "kolme neljä" Väite: testi1. Väite: testi2. Väite: kolme neljä