Command-line programs receive their extra words as an array of arguments.

ARGV Basics

argv_basics.rb
args = 
command = args.fetch(0, "help")
target = args.fetch(1, "default")
extra_count = [args.length - 2, 0].max

puts "command=#{command}"
puts "target=#{target}"
puts "arg_count=#{args.length}"
puts "extra_count=#{extra_count}"
args = 
command = args.fetch(0, "help")
target = args.fetch(1, "default")
extra_count = [args.length - 2, 0].max

puts "command=#{command}"
puts "target=#{target}"
puts "arg_count=#{args.length}"
puts "extra_count=#{extra_count}"
args = 
command = args.fetch(0, "help")
target = args.fetch(1, "default")
extra_count = [args.length - 2, 0].max

puts "command=#{command}"
puts "target=#{target}"
puts "arg_count=#{args.length}"
puts "extra_count=#{extra_count}"
argv `ARGV` is just an array of strings. Examples can model it with a local array before reading real process input.