LoginSignup
3

More than 5 years have passed since last update.

Bash,Zshの環境変数をFishに共有する

Posted at

Fishに変えても完全に乗り換えられないという人は、Bash/ZshとFishの環境変数の設定を共有したいこともあるでしょう。
そういう方は .bash_prorile.zshenv の最後で以下のように最後に exec fish を記述すればよい。

# .bash_profile | .zshenv
...
## 環境変数の設定など
...

exec fish  # PATHが通っている前提

利点

  • 以前使っていたシェル(bash, zsh)の環境変数をそのまま利用可能
  • s/export/set -x/ という環境変数のコピー・置換作業から開放される
  • 後から以前のシェルに戻りたいときに設定の差分見て頑張る必要がなくなる

何故これだけでいいの?

環境変数は子プロセスに伝搬するため。
そのため .bash_profile, .zshenv 経由で環境変数を設定したあとでfishを起動することで (親)bash/zsh => (子)fish となるので環境変数の共有が可能。

終わりに

環境変数はこの方法で共有できるけど、エイリアスなどは bash/zsh <=> fish の記法の差分でシンプルには行かない。
今その問題をクリアするためにシコシコ頑張っているので出来たタイミングで公開したい。

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3