(Estoy hablando de la cáscara de los pescados , esp. De pescado de pescado ).
Para Bash / ZSH, tuve ~/.profile
algunas exportaciones, alias y otras cosas.
No quiero tener una configuración separada para las variables de entorno para Fish, quiero reutilizar mi ~/.profile
. ¿Cómo?
En las preguntas frecuentes, se dice que al menos puedo importarlos a través de /usr/local/share/fish/tools/import_bash_settings.py
, sin embargo, no me gusta ejecutar eso para cada instancia de Fish.
usermod -s /usr/local/bin/fishlogin $USER
eschsh -s /usr/local/fishlogin $USER
chsh: /usr/local/bin/fishlogin: non-standard shell
necesita agregarlo a/etc/shells
fish "$@"
debe reemplazarse conexec -l fish "$@"
.exec
reemplaza el proceso bash con fish, mientras-l
que lo haceargv[0]
para fish is-fish
, lo que indica que se trata de un shell de inicio de sesión.Mi solución actual (ver aquí para una versión quizás más reciente):
fuente
Para una solución mucho más limpia, puede usar el complemento env extranjero :
fuente
Puede usar bass , un complemento para ejecutar comandos bash en fish.
Instalar bajo .
Y luego, solo pon esto en tu
config.fish
:fuente
.profile
que tiene demasiado en juego .bass
Por otro lado, interpreta cualquier script de shell bash y hace que se ejecuten en peces. Ciertamente tendrá un poco más de gastos generales, pero en mi experiencia es totalmente insignificante, pero su kilometraje puede variar.Traté de obtener .profile en el inicio de pescado y funcionó como un encanto para mí.
solo haz :
Reinicie el terminal o iterm2, pruebe un alias de
.profile
a prueba.Nota: No funcionará con archivos .profile más complejos que usan una sintaxis no disponible en fish - credit @erb
fuente
.profile
archivos más complejos que usan una sintaxis no disponible en fish.Instale
dash
y agregue esta línea a suconfig.fish
:fuente
dash
, solosh
lo hará (lo que probablemente sea un guión)No puedes
fish
La sintaxis es muy diferente de la sintaxis de Bourne shell (/bin/sh
). Esta es la misma razón por la que no se puede usar.profile
con otros shells no derivados de Bourne, comocsh
ytcsh
.fuente
.profile
. Solo quiero obtener todos losexport
mensajes de ahí. Una manera fácil sería paraegrep "^export"
que ya fuera lo suficientemente bueno para mí. Otra solución más correcta sería esta . Además, por ejemplo, podría ejecutar esteimport_bash_settings.py
script que probablemente haga algo similar. Entonces, obviamente hay muchas maneras de hacer esto. Con mi pregunta aquí, me preguntaba cómo otros han resuelto esto.Si su distribución usa PAM , puede establecer sus variables de entorno en su
~/.pam_environment
archivo.fuente
Puedes comenzar Fish from Bash. Si hace eso, Fish heredará todas las variables de entorno (
export FOO=bar
) de Bash. En este punto, Bash ya habrá leído tu.profile
(o similar).fuente