(Eu estou falando sobre o shell peixe , esp. Peixe de Peixe .)
Para o Bash / ZSH, tive ~/.profile
algumas exportações, aliases e outras coisas.
Não quero ter uma configuração separada para variáveis de ambiente do Fish, quero reutilizar o meu ~/.profile
. Quão?
No FAQ, é declarado que eu posso pelo menos importá-los via /usr/local/share/fish/tools/import_bash_settings.py
, no entanto, eu realmente não gosto de executar isso para cada instância de Fish.
usermod -s /usr/local/bin/fishlogin $USER
ischsh -s /usr/local/fishlogin $USER
chsh: /usr/local/bin/fishlogin: non-standard shell
precisa para adicioná-lo/etc/shells
fish "$@"
deve ser substituído porexec -l fish "$@"
.exec
substitui o processo do bash por fish, enquanto-l
faz com que sejaargv[0]
para fish-fish
, o que indica que este é um shell de logon.Minha solução atual (veja aqui uma versão talvez mais recente):
fonte
Para uma solução muito mais limpa, você pode usar o plug-in env estrangeiro :
fonte
Você pode usar o bass , um plugin para executar comandos bash em peixes.
Instale baixo .
E então, basta colocar isso no seu
config.fish
:fonte
.profile
que tem muita coisa acontecendo.bass
por outro lado, interpreta qualquer script do shell bash e os faz rodar em peixes. Certamente terá um pouco mais de sobrecarga, mas é totalmente insignificante na minha experiência, mas sua milhagem pode variar.Tentei pesquisar .profile na inicialização de peixes e funcionou como um encanto para mim.
apenas faça :
Reinicie o terminal ou iterm2, teste um alias de
.profile
para testar.Nota: Não funcionará com arquivos .profile mais complexos que usam sintaxe não disponível no fish - credit @erb
fonte
.profile
arquivos mais complexos que usam sintaxe não disponível no fish.Instale
dash
e adicione esta linha ao seuconfig.fish
:fonte
dash
- apenassh
fará (o que provavelmente é um arremetida)Você não pode.
fish
A sintaxe de é muito diferente do shell Bourne (/bin/sh
sintaxe ). Esse é o mesmo motivo que você não pode usar.profile
com outros invólucros não derivados de Bourne, comocsh
etcsh
.fonte
.profile
. Eu só quero pegar todos osexport
s de lá. Uma maneira fácil seria aegrep "^export"
que já seria suficiente para mim. Outra solução mais correta seria essa . Além disso, por exemplo, eu poderia executar esseimport_bash_settings.py
script, o que provavelmente faz algo semelhante. Portanto, obviamente existem muitas maneiras de fazer isso. Com a minha pergunta aqui, eu queria saber como os outros resolveram isso.Se sua distribuição usa PAM , você pode definir suas variáveis de ambiente no seu
~/.pam_environment
arquivo.fonte
Você pode iniciar o Fish a partir do Bash. Se você fizer isso, o Fish herdará todas as variáveis de ambiente (
export FOO=bar
) do Bash. Neste ponto, o Bash já terá lido o seu.profile
(ou algo semelhante).fonte