fish shellで.bashrcの環境変数を使う
前置き
fish shell を使っている人向けです。
まず、fishとbashの設定ファイル(.bashrc、.bash_profileとかのこと)には互換性がありません。
大抵のツールはbashを使っていることを前提としているため、ツールを導入したときの設定は「.bashrc」や「.zshrc」などに書き込まれます。 そのため、fishでこれらのツールを使おうとする場合は、手動で設定ファイル(.config/fish/config.fishとか)に書き込まないといけません。
が、手動で設定ファイルを書くのは耐えがたい苦痛なので、「.bashrc」を直接読み込めるようにしたいです。
解決策
bassを利用します。
bassの仕組み
bassは.bashrcを直接読むわけではなく、bashのサブシェルで実行して、環境変数の変更だけをfishに持ってくるツールです。
使い方
fisher install edc/bass
# config.fishに追記
if status is-interactive
bass source ~/.bashrc
end
注意点
起動が遅くなる
毎回bashを起動するので、シェルの起動が少し遅くなります。 気になる場合は、必要なツールの設定だけを個別に読み込むのがおすすめです。
# 例:nvmだけ読み込む
bass source ~/.nvm/nvm.sh
移植されないもの
環境変数(PATHとか)は移植されますが、bashの関数やエイリアスは移植されません。 あくまで環境変数だけです。