Rövid útmutató a parancssori argumentumokhoz a Ruby-ban

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
instagram viewer

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
instagram story viewer