Sok Rubin a szkripteknek nincs szövege vagy grafikus interfészek. Egyszerűen futnak, elvégzik a munkájukat, majd kilépnek. A szkriptekkel való kommunikációhoz a viselkedésük megváltoztatása érdekében parancssori argumentumokat kell használni.
A parancssor a UNIX parancsok általános működési módja, és mivel a Rubint széles körben használják UNIX és UNIX-szerű rendszerek (mint például a Linux és a macOS), ez elég szokásos, hogy ilyen típusúakkal találkozzanak program.
Hogyan lehet parancssori érveket szolgáltatni?
A Ruby script argumentumait a shell továbbítja a Ruby programhoz, az a program, amely parancsokat (például bash) fogad a terminálon.
A parancssorban a szkript nevét követő minden szöveget parancssori argumentumnak tekintünk. Szóközökkel elválasztva minden szót vagy karakterláncot külön argumentumként adnak át a Ruby programnak.
A következő példa bemutatja a megfelelő szintaxist, amelyet a test.rb Ruby szkript a parancssorból az argumentumokkal test1 és test2.
$ ./test.rb test1 test2
Előfordulhat olyan helyzet, amikor argumentumot kell átadnia egy Ruby programnak, de van egy hely a parancsban. Eleinte lehetetlennek tűnik, mivel a héj elválasztja a szóközök érveit, de erre van rendelkezés.
Az idézőjelekben szereplő érveket nem választják el egymástól. A dupla idézőjeleket a héj eltávolítja, mielőtt átadja a Ruby programnak.
A következő példa egyetlen érvet továbbít a test.rb Ruby forgatókönyv, teszt1 teszt2:
$ ./test.rb "test1 test2"
A parancssori érvek használata
A Ruby programjaiban elérheti a parancssori argumentumokat, amelyeket a héj továbbított a ARGV speciális változó. ARGV egy Array változó, amely karakterlánconként tárolja az összes argumentumot, amelyet a héj továbbított.
Ez a program az ARGVsor és kinyomtatja annak tartalmát:
#! / usr / bin / env rubin. ARGV.sech do | a | "érv: # {a}" vég
Az alábbiakban egy kivonat egy bash sessionről, amely elindítja ezt a szkriptet (fájlként mentettként) test.rb) számos érvvel:
$ ./test.rb test1 teszt2 "három négy" Érv: 1. teszt. Érv: 2. teszt. Érv: három négy