Rychlý průvodce argumenty příkazového řádku v Ruby

click fraud protection

Mnoho Rubín skripty nemají text nebo grafická rozhraní. Jednoduše utíkají, dělají svou práci a pak odcházejí. Pro komunikaci s těmito skripty, aby se změnilo jejich chování, musí být použity argumenty příkazového řádku.

Příkazový řádek je standardní režim činnosti pro příkazy UNIX a protože se Ruby používá široce UNIX a unixové systémy (jako je Linux a MacOS), je docela standardní setkat se s tímto typem program.

Jak poskytnout argumenty příkazového řádku

Argumenty skriptu Ruby jsou předány do programu Ruby shellem, programem, který přijímá příkazy (například bash) na terminálu.

Na příkazovém řádku je jakýkoli text následující za názvem skriptu považován za argument příkazového řádku. Odděleno mezerami bude každé slovo nebo řetězec předán jako samostatný argument programu Ruby.

Následující příklad ukazuje správnou syntaxi použitou ke spuštění test.rb Ruby skript z příkazového řádku s argumenty test1 a test2.

$ ./test.rb test1 test2

Můžete narazit na situaci, kdy musíte předat argument programu Ruby, ale v příkazu je mezera. Nejprve se to zdá nemožné, protože prostředí odděluje argumenty na mezerách, ale existuje ustanovení.

instagram viewer

Žádné argumenty ve dvojitých uvozovkách nebudou odděleny. Dvojité uvozovky jsou odstraněny shellem před předáním do programu Ruby.

Následující příklad předává jediný argument test.rb Ruby skript, test1 test2:

$ ./test.rb "test1 test2"

Jak používat argumenty příkazového řádku

Ve svých programech Ruby máte přístup ke všem argumentům příkazového řádku předaným shellem pomocí ARGV speciální proměnná. ARGV je proměnná Array, která drží jako argumenty každý argument předaný shellem.

Tento program iteruje přes ARGVpole a vytiskne jeho obsah:

#! / usr / bin / env ruby. ARGV.each to | a | vloží "Argument: # {a}" konec

Následuje výňatek z bash relace spouštějící tento skript (uložený jako soubor test.rb) s různými argumenty:

$ ./test.rb test1 test2 "three four" Argument: test1. Argument: test2. Argument: tři čtyři
instagram story viewer