Como adicionar exportações para pescar como no .bashrc?

50

Eu só queria poder adicionar dentro de algum arquivo de configuração de peixes (não sei qual / onde) a mesma função que esta:

export PERL5LIB=/home/iaco/workspace/perl:/home/iaco/devtools

Essa linha foi adicionada ao arquivo .bashrc e foi possível exportar a variável toda vez que eu abria um terminal.

Existe algo assim para os peixes? Eu sei que posso exportar variáveis ​​em peixes usando o comando "set", mas quero modificar um arquivo (não sei qual) para adicionar automaticamente essas variáveis ​​cada vez que abro um terminal de peixes.

Obrigado pelo seu tempo!

Jorge Castro
fonte

Respostas:

50

Você pode inserir a configuração de peixes específica do usuário, incluindo diretivas definidas ~/.config/fish/config.fish. O conteúdo deve ser mais ou menos assim

set -x PERL5LIB /home/iaco/workspace/perl:/home/iaco/devtools

Mais informações podem ser encontradas na documentação .

Adam Byrtek
fonte
Obrigado Adam. O principal objetivo dessa alteração é poder incluir dentro do Perl @inc o caminho das minhas bibliotecas locais. Depois de adicionar a linha que você sugeriu, a exportação foi feita corretamente! Mas, se eu executar o perl -VI não verá os novos caminhos. Eu sei que esta é mais uma questão Perl do que um peixe, mas eu só queria saber se você (ou outra pessoa) tem uma idéia
Eu deveria ter mencionado a -xbandeira. Acabei de atualizar a resposta e você pode ler mais sobre isso na seção "Exportando variáveis" na documentação.
21411 Adam Byrtek
11
O site principal do fish está inativo, mas a documentação do fork do fishfish está em ridiculousfish.com/shell/user_doc/html/commands.html#set (presumo que seja o mesmo).
Daniel James
Os peixes têm acesso a variáveis ​​ambientais como $ PATH?
conceder
@grant sim, $PATHetc , pode ser usado em peixes, inclusive em config.fish.
Scribblemacher
19

Use variáveis ​​universais introduzidas no fish 2.0.0. -xsignifica exportado e -Usignifica que é declarado para cada sessão de peixe. Você também pode usar as opções longas --exporte --universal.

set -xU PERL5LIB /home/iaco/workspace/perl:/home/iaco/devtools

Observe que a PATHvariável é um caso especial. Embora PATHpossa ser universalmente alterado, isso afetará sua variável PATH atual (o que pode ser um pouco problemático se um caminho extra for introduzido por um sistema operacional). Para PATHvariável, use fish_user_pathsvariável (que apenas adiciona caminhos). A variável é uma matriz, o que significa que você não precisa colocar :caracteres.

set -U fish_user_paths /home/iaco/workspace/perl/share/bin /home/iaco/bin $fish_user_paths
Konrad Borowski
fonte
Sim você está certo!
Nishant