Läsa in kommandoradsargument

Elixir:
Läsa in kommandoradsargument

Så här gör du:

Elixir gör det enkelt att hantera kommandoradsargument med System.argv/0. Här är ett exempel:

defmodule Greeter do
  def main(args) do
    args |> Enum.join(" ") |> IO.puts()
  end
end

Greeter.main(System.argv())

Om du sparar detta som greeter.exs och kör elixir greeter.exs Hej Värld, blir output:

Hej Värld

Fördjupning

Elixir, som är byggt på Erlang’s VM, ärande för skriptspråk med lätt skalbarhet och felhantering. Att läsa in kommandoradsargument är vanligt i många språk och verktyg för kommando rader som optparse finns också i Elixir för mer komplexa ändamål.

Din kod kör i Elixir’s interpreter, där System.argv/0 är ett inbyggt anrop som ger tillgång till användardefinierade argument. För mer control, använd OptionParser.parse/2 som hanterar flaggor och nyckelord etc.

Ett exempel med OptionParser:

defmodule Greeter do
  def main do
    {opts, args, _} = OptionParser.parse(System.argv())
  
    welcome = if opts[:capitalize], do: String.upcase(Enum.join(args, " ")), else: Enum.join(args, " ")
  
    IO.puts welcome
  end
end

Greeter.main()

Om du kör elixir greeter.exs --capitalize hej värld, blir output HEJ VÄRLD.

Se även: