Julia - IJulia のセルで Bash コマンドを使う

環境

  • Julia 1.1.0
  • OS: ArchLinux

IJulia で ; から始めると Shell mode になるので Bash*1 コマンドが使えるけれども、2行以上書くと実行できなくなる。

f:id:goropikarikun:20190201223916p:plain

f:id:goropikarikun:20190201223928p:plain

run を使えば長々書くことも出来るけれども、それは面倒だなぁというときは以下のマクロを定義する。

# https://github.com/JuliaLang/IJulia.jl/blob/90ed075e40feb97efea3e47c899dc88907963fd1/src/magics.jl#L348
macro bash_str(s) open(`bash`,"w",stdout) do io; print(io, s); end; end

定義すると以下のようにして Bash コマンドを実行できる。

bash"""
cmd1
cmd2
...
"""

f:id:goropikarikun:20190201223955p:plain

こんなマクロわざわざ覚えてられるかという場合は、notebook のセルで %%bash と入力して実行する。 そうすると上記のマクロが出てくるのでコピペして実行すれば良い。

gist3b63ae95ed6df1b16db9197ae876c9a9

*1:Shell に Bash を指定した場合