Elixirでコマンドラインのツールを書く方法が(自分の観測範囲内では)二通りある。 一つはスクリプトとして実行する方法。もう一つは、escript を使う方法(こっちの方法も名前からするとスクリプトとして実行されてるっぽいけど)。 スクリプトとして実行した場合、System.argv/0 を使えばいつでもコマンドに渡された引数を得ることができるけれど、escript を使った場合は System.argv は nil を返してくる。 ということのメモ。 スクリプトとして実行した場合 ソース defmodule RunScript do def go(argv) do IO.inspect argv IO.inspect System.argv end end RunScript.go(System.argv) 実行 $ elixir run_script.exs one two thre