¿Cómo agregar exportaciones al pescado como en .bashrc?

50

Solo quería poder agregar dentro de un archivo de configuración de pescado (no sé qué / dónde) la misma función que esta:

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

Esta línea se agregó dentro del archivo .bashrc y fue capaz de exportar la variable cada vez que abría un terminal.

¿Hay algo así para los peces? Sé que puedo exportar variables en peces usando el comando "set", pero quiero modificar un archivo (no sé cuál) para agregar automáticamente esas variables cada vez que abro un terminal de peces.

¡Gracias por tu tiempo!

Jorge Castro
fuente

Respuestas:

50

Puede incluir la configuración de peces específica del usuario, incluidas las directivas establecidas ~/.config/fish/config.fish. El contenido debería verse más o menos así

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

Se puede encontrar más información en la documentación .

Adam Byrtek
fuente
Gracias Adam El objetivo principal de este cambio es poder incluir dentro de Perl @inc la ruta de mis bibliotecas locales. Después de agregar la línea que sugirió, la exportación se realizó correctamente. Pero, si ejecuto perl -VI no verá los nuevos caminos. Sé que esta es más una pregunta de Perl que una de pez, pero solo quería saber si usted (o alguien más) tiene una idea
Debería haber mencionado la -xbandera. Acabo de actualizar la respuesta, y puedes leer más sobre eso en la sección "Exportar variables" en la documentación.
Adam Byrtek
1
El sitio principal de pescado está caído, pero la documentación del tenedor de pescado está en ridiculousfish.com/shell/user_doc/html/commands.html#set (supongo que es lo mismo).
Daniel James el
¿Los peces tienen acceso a variables ambientales como $ PATH?
conceda el
@grant yes, $PATHetc. se puede usar en fish, incluso en config.fish.
Scribblemacher
19

Utilice variables universales introducidas en fish 2.0.0. -xsignifica exportado y -Usignifica que se declara para cada sesión de pesca. También puede usar las opciones largas --exporty --universal.

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

Tenga en cuenta que la PATHvariable es un poco un caso especial. Si bien PATHse puede cambiar universalmente, esto afectará su variable PATH actual (que puede ser un problema si un sistema operativo introduce una ruta adicional). Para PATHvariable, use fish_user_pathsvariable (que solo agrega rutas) en su lugar. La variable es una matriz, lo que significa que no tiene que poner :caracteres.

set -U fish_user_paths /home/iaco/workspace/perl/share/bin /home/iaco/bin $fish_user_paths
Konrad Borowski
fuente
¡Sí, tiene usted razón!
Nishant