Bash/ZSHの場合、いくつかのエクスポート、エイリアス、およびその他の機能を備えた~/.profile
がありました。
Fishの環境変数に個別の設定をしたくないので、~/.profile
を再利用します。どうやって?
FAQには、少なくとも/usr/local/share/fish/tools/import_bash_settings.py
経由でインポートできると記載されていますが、Fishインスタンスごとに実行することはあまり好きではありません。
私の現在の解決策(おそらく最新バージョンについては ここ を参照してください):
egrep "^export " ~/.profile | while read e
set var (echo $e | sed -E "s/^export ([A-Z_]+)=(.*)\$/\1/")
set value (echo $e | sed -E "s/^export ([A-Z_]+)=(.*)\$/\2/")
# remove surrounding quotes if existing
set value (echo $value | sed -E "s/^\"(.*)\"\$/\1/")
if test $var = "PATH"
# replace ":" by spaces. this is how PATH looks for Fish
set value (echo $value | sed -E "s/:/ /g")
# use eval because we need to expand the value
eval set -xg $var $value
continue
end
# evaluate variables. we can use eval because we most likely just used "$var"
set value (eval echo $value)
set -xg $var $value
end
Bashを使用して/ etc/profileと〜/ .profileを解析し、魚を起動できます。
作成/usr/local/bin/fishlogin
内容あり
#!/bin/bash -l
exec -l fish "$@"
実行可能にする
Sudo chmod +x /usr/local/bin/fishlogin
/ etc/shellsに追加します
echo /usr/local/bin/fishlogin | Sudo tee -a /etc/shells
デフォルトのシェルとして設定します
Sudo usermod -s /usr/local/bin/fishlogin $USER
よりクリーンな解決策として、 foreign env プラグインを使用できます。
fenv source ~/.profile
プラグイン bass を使用して、fishでbashコマンドを実行できます。
$ git clone https://github.com/edc/bass.git
$ cd bass
$ make install
そして、これをconfig.fish
:
bass source ~/.profile
魚のスタートアップで.profileを調達してみましたが、それは私にとって魅力的なものでした。
ただ:
echo 'source ~/.profile;clear;' > ~/.config/fish/config.fish
端末またはiterm2を再起動し、.profile
からエイリアスをテストしてテストします。
注:fishでは使用できない構文を使用するより複雑な.profileファイルでは機能しません-credit @erb
dash
をインストールして、次の行をconfig.fish
に追加します。
env -i HOME=$HOME dash -l -c 'export -p' | sed -e "/PATH/s/'//g;/PATH/s/:/ /g;s/=/ /;s/^export/set -x/" | source
できません。 fish
の構文は、Bourne Shell(/bin/sh
)の構文とはあまりにも異なります。これは、csh
やtcsh
などの他の非Bourne派生シェルで.profile
を使用できない同じ理由です。
BashからFishを起動できます。そうすると、Fishはすべての環境変数(export FOO=bar
)バッシュから。この時点で、Bashはすでに.profile
(など)。
bash-3.2$ export TEST="test"
bash-3.2$ fish
cmey@MBP ~> echo $TEST
test
ディストリビューションで [〜#〜] pam [〜#〜] を使用している場合、環境変数を ~/.pam_environment
ファイル。