IEx上でコマンドを実行する(Elixir)


あまつ風雲のかよひ路吹きとぢよをとめの姿しばしとどめむ

Advent Calendar 2022 61日目1の記事です。
I'm looking forward to 12/25,2022
私のAdvent Calendar 2022 一覧


はじめに

Elixirを楽しんでいますか

IEx立ち上げた〜 > コマンド使いたい > もう一丁ターミナル立ち上げるか
となることありませんか。
私はしょっちゅうあります。

そんなときにそのままIEx上でコマンドを実行する方法をご紹介します。
macOS Catalina 10.15.7macOS Monterey 12.2.1で確かめました。

Elixirでコマンドを実行する関数を使うわけです。

What's IEx?

IExというのは、

Elixir's interactive shell.

です。

Elixirのプロジェクトのルートで、iex -S mixという形でよく使います。

mix formatしたい

iex> :os.cmd('mix format')

もしくは

iex> System.cmd("mix", ["format"])

です。
ちなみに、私は前者のほうをよく使っています。

ドキュメントはここです。

あとは同じ要領です。
その他、例をいくつか紹介しておきます。

Finderを開きたい

iex> :os.cmd('open .')  

もしくは

iex> System.cmd("open", ["."])

VS Codeを開きたい

iex> :os.cmd('code .')  

もしくは

iex> System.cmd("code", ["."])

参考: https://code.visualstudio.com/docs/setup/mac#_launching-from-the-command-line

ここに書いてあることをやって、codeコマンドが使えるようにしています。


Wrapping up

Enjoy Elixir
$\huge{Enjoy\ Elixir🚀}$

今回はIEx上で、コマンドを実行する方法をご紹介しました。
ただ、:os.cmdSystem.cmd/3を使っているだけのことです。

以上です。


I organize autoracex.
And I take part in NervesJP, fukuoka.ex, EDI, tokyo.ex, Pelemay.
I hope someday you'll join us.

We Are The Alchemists, my friends!


  1. @kaizen_nagoya さんの「「@e99h2121 アドベントカレンダーではありますまいか Advent Calendar 2020」の改訂版ではありますまいか Advent Calendar 2022 1日目 Most Breakthrough Generator」から着想を得て、模倣いたしました。