mise.tomlのツールがすぐ使えるシェルを起動したい

【mise】mise envでmiseが設定する環境変数を出力する で紹介したmise envは、export文を出力するだけで、現在のシェルに反映するにはevalが必要になる。mise enを使うと、evalを挟まずに、mise環境が最初から有効なシェルをその場で起動できる。

mise enの基本

jq = "1.7.1"と書かれたmise.tomlがあるディレクトリでmise enを実行する。

$ mise en
$ jq --version
jq-1.7.1
$ which jq
/root/.local/share/mise/installs/jq/1.7.1/jq

mise enで起動したシェルの中では、evalなしでjqコマンドがすぐに使える。抜けるには通常のシェルと同様にexitする。

-sで起動するシェルを指定する

既定では$SHELLで起動するが、-s(--shell)で別のシェルを指定できる。rcファイルを読み込みたくない場合は、シェルのオプションと一緒に指定する。

$ mise en -s "bash --norc"
$ jq --version
jq-1.7.1

mise activate/mise shellとの違い

【mise】mise activateでシェルにmiseを組み込む はシェルの設定ファイルに恒久的にフックを組み込み、ディレクトリ移動のたびに自動でmise環境を切り替える。【mise】mise shellでシェルセッションの間だけバージョンを切り替える は、そのactivate済みのシェルの中で一時的にバージョンを切り替えるコマンドである。

mise enはどちらとも異なり、シェルの設定ファイルを変更せず、独立した新しいシェルプロセスとしてmise環境を起動する。ディレクトリを移動しても、起動時のディレクトリのmise環境のまま変わらない点にも注意する。