(Je parle de la coquille de poisson , esp. Poisson de poisson .)
Pour Bash / ZSH, j'ai eu ~/.profile
avec quelques exportations, alias et autres trucs.
Je ne veux pas avoir une configuration séparée pour les variables d'environnement pour Fish, je veux réutiliser mon ~/.profile
. Comment?
Dans la FAQ, il est indiqué que je peux au moins les importer via /usr/local/share/fish/tools/import_bash_settings.py
, mais je n'aime pas vraiment l'exécuter pour chaque instance de Fish.
usermod -s /usr/local/bin/fishlogin $USER
ischsh -s /usr/local/fishlogin $USER
chsh: /usr/local/bin/fishlogin: non-standard shell
besoin de l'ajouter à/etc/shells
fish "$@"
doit être remplacé parexec -l fish "$@"
.exec
remplace le processus bash par fish, tandis-l
que celuiargv[0]
de fish est-fish
, ce qui indique qu'il s'agit d'un shell de connexion.Ma solution actuelle (voir ici pour une version peut-être plus récente):
la source
Pour une solution beaucoup plus propre, vous pouvez utiliser le plugin env étranger :
la source
Vous pouvez utiliser bass , un plugin pour exécuter des commandes bash dans fish.
Installez des basses .
Et puis, mettez cela dans votre
config.fish
:la source
.profile
qui en a trop.bass
d'autre part interprète tout script shell bash, et les faire fonctionner dans le poisson. Il aura certainement un peu plus de frais généraux, mais totalement négligeable selon mon expérience, mais votre kilométrage peut varier.J'ai essayé de sourcer .profile au démarrage de fish et cela a fonctionné comme un charme pour moi.
fais juste:
Redémarrez le terminal ou l'iterm2, testez un alias de
.profile
à tester.Remarque: ne fonctionnera pas avec des fichiers .profile plus complexes qui utilisent une syntaxe non disponible dans fish - credit @erb
la source
.profile
fichiers plus complexes qui utilisent une syntaxe non disponible dans fish.Installez
dash
et ajoutez cette ligne à votreconfig.fish
:la source
dash
-sh
fera juste (ce qui est probablement un tiret)Tu ne peux pas.
fish
La syntaxe de est trop différente de la/bin/sh
syntaxe Bourne shell ( ). C'est la même raison que vous ne pouvez pas utiliser.profile
avec d'autres shells non dérivés de Bourne, tels quecsh
ettcsh
.la source
.profile
. Je veux juste obtenir toutexport
de là. Un moyen simple serait de trouveregrep "^export"
ce qui serait déjà assez bon pour moi. Une autre solution plus correcte serait la suivante . De plus, je pourrais par exemple exécuter ceimport_bash_settings.py
script qui fait probablement quelque chose de similaire. Il y a donc évidemment de nombreuses façons de procéder. Avec ma question ici, je me demandais comment d'autres ont résolu cela.Si votre distribution utilise PAM , vous pouvez définir vos variables d'environnement dans votre
~/.pam_environment
fichier.la source
Vous pouvez démarrer Fish from Bash. Si vous faites cela, Fish héritera de toutes les variables d'environnement (
export FOO=bar
) de Bash. À ce stade, Bash aura déjà lu votre.profile
(ou similaire).la source