Jak dodać eksport do ryb jak w .bashrc?

50

Chciałem tylko móc dodać do pliku konfiguracyjnego ryb (nie wiem, gdzie / gdzie) tę samą funkcję:

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

Ta linia została dodana do pliku .bashrc i była w stanie wyeksportować zmienną za każdym razem, gdy otworzyłem terminal.

Czy jest coś takiego dla ryb? Wiem, że mogę eksportować zmienne do ryb za pomocą polecenia „set”, ale chcę zmodyfikować jeden plik (nie wiem, który), aby automatycznie dodawać te zmienne za każdym razem, gdy otwieram terminal rybny.

Dziękuję za Twój czas!

Jorge Castro
źródło

Odpowiedzi:

50

Możesz umieścić konfigurację ryb specyficzną dla użytkownika, w tym zestaw dyrektyw, w ~/.config/fish/config.fish. Treść powinna wyglądać mniej więcej tak

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

Więcej informacji można znaleźć w dokumentacji .

Adam Byrtek
źródło
Dzięki Adam. Głównym celem tej zmiany jest możliwość włączenia w Perl @inc ścieżkę moich lokalnych bibliotek. Po dodaniu sugerowanej linii eksport został poprawnie wykonany! Ale jeśli uruchomię perl -VI nie zobaczy nowych ścieżek. Wiem, że jest to pytanie Perla bardziej niż rybne, ale chciałem tylko wiedzieć, czy ty (lub ktoś inny) masz pomysł
Powinienem był wspomnieć o -xfladze. Właśnie zaktualizowałem odpowiedź i możesz przeczytać więcej na ten temat w sekcji „Eksportowanie zmiennych” w dokumentacji.
Adam Byrtek,
1
Główna strona z rybami nie działa, ale dokumentacja widelca z rybami znajduje się na ridiculousfish.com/shell/user_doc/html/commands.html#set (zakładam, że jest tak samo).
Daniel James
Czy ryby mają dostęp do zmiennych środowiskowych, takich jak $ PATH?
udziel
@grant tak, $PATHitp. można używać w rybach, w tym w config.fish.
Scribblemacher
19

Użyj zmiennych uniwersalnych wprowadzonych w rybach 2.0.0. -xoznacza wyeksportowany i -Uoznacza, że ​​jest zadeklarowany dla każdej sesji rybnej. Możesz także użyć długich opcji --exporti --universal.

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

Pamiętaj, że PATHzmienna jest trochę szczególnym przypadkiem. Chociaż PATHmożna go uniwersalnie zmienić, wpłynie to na twoją bieżącą zmienną PATH (co może być trochę problemem, jeśli system operacyjny wprowadzi dodatkową ścieżkę). W przypadku PATHzmiennej użyj fish_user_pathszmiennej (która dodaje tylko ścieżki). Zmienna jest tablicą, co oznacza, że ​​nie musisz umieszczać :znaków.

set -U fish_user_paths /home/iaco/workspace/perl/share/bin /home/iaco/bin $fish_user_paths
Konrad Borowski
źródło
Tak masz rację!
Nishant