Läsa in kommandoradsargument

Ruby:
Läsa in kommandoradsargument

Hur gör man:

Ruby har en enkel och rättfram syn på kommandoradsargument genom att använda den globala arrayen ARGV. Här är ett grundläggande exempel:

# hello.rb
puts "Hej #{ARGV[0]}!"

Kör detta genom att skriva ruby hello.rb Världen i terminalen, och resultatet blir:

Hej Världen!

Om du vill hantera flera argument, iterera bara över ARGV:

# greeter.rb
ARGV.each do |arg|
  puts "Hej #{arg}!"
end

Kör med ruby greeter.rb Världen Universum, skulle producera:

Hej Världen!
Hej Universum!

Fördjupning

Historiskt sett har kommandoradsargument varit en viktig del av interaktiva skript och program. I Ruby’s värld är de enkla att använda men kraftfulla och hanteras via ARGV arrayen som automatiskt populeras med argumenten som skickas till ditt skript.

Om du behöver mer avancerad argumenthantering kan du använda inbyggda bibliotek som OptionParser eller externa gems som Thor för att hantera flaggor och komplexa behov.

För att förstå hur Ruby isolerar dessa argument från programmets interna variabler är det värt att notera att ARGV och $* är alias för samma objekt, vilket illustrerar kopplingen mellan Ruby och dess Unix-ursprung där $* används för att referera till alla skriptargument i shell-skript.

Det kan vara frestande att använda gets.chomp direkt för enkel indata, men undvik det här för argument som ska kunna hanteras med skriptet kallat; det är inte vad gets är avsett för.

Se även