(Mówię o skorupce Fish , zwłaszcza Fish's Fish .)
W przypadku Bash / ZSH miałem ~/.profile
trochę eksportu, aliasów i innych rzeczy.
Nie chcę mieć osobnej konfiguracji dla zmiennych środowiskowych dla Fisha, chcę ponownie użyć mojej ~/.profile
. W jaki sposób?
W często zadawanych pytaniach stwierdzono, że mogę przynajmniej zaimportować te pliki /usr/local/share/fish/tools/import_bash_settings.py
, jednak tak naprawdę nie lubię uruchamiać tego dla każdej instancji Fish.
usermod -s /usr/local/bin/fishlogin $USER
jestchsh -s /usr/local/fishlogin $USER
chsh: /usr/local/bin/fishlogin: non-standard shell
musisz dodać to do/etc/shells
fish "$@"
należy je zastąpićexec -l fish "$@"
.exec
zastępuje proces bash rybą, podczas gdy-l
powoduje, żeargv[0]
dla ryb jest-fish
, co sygnalizuje, że jest to powłoka logowania.Moje obecne rozwiązanie (zobacz tutaj, być może najnowszą wersję):
źródło
Aby uzyskać znacznie czystsze rozwiązanie, możesz użyć zagranicznej wtyczki env :
źródło
Możesz użyć basu , wtyczki do wykonywania poleceń bash u ryb.
Zainstaluj bas .
A następnie po prostu umieść to w swoim
config.fish
:źródło
.profile
zbyt wiele się dzieje.bass
z drugiej strony interpretuje każdy skrypt powłoki bash i sprawia, że działają na rybach. Z pewnością będzie to miało nieco większy koszt, ale z mojego doświadczenia jest zupełnie nieistotne, ale przebieg może się różnić.Próbowałem uzyskać .profile przy uruchamianiu ryb i działało to dla mnie jak urok.
po prostu zrób :
Zrestartuj terminal lub iterm2, przetestuj alias od
.profile
do testu.Uwaga: nie będzie działać z bardziej złożonymi plikami .profile, które używają składni niedostępnej w usłudze fish - credit @erb
źródło
.profile
plikami, które używają składni niedostępnej w rybach.Zainstaluj
dash
i dodaj ten wiersz doconfig.fish
:źródło
dash
- wystarczysh
to zrobić (co jest prawdopodobnie kreską)Nie możesz
fish
Składnia jest zbyt różna od/bin/sh
składni powłoki Bourne'a ( ). Jest to ten sam powód, dla którego nie można używać.profile
z innymi powłokami niepochodzącymi z Bourne'a, takimi jakcsh
itcsh
.źródło
.profile
. Chcę po prostu dostaćexport
stamtąd stamtąd. Jednym łatwym sposobem byłby,egrep "^export"
który byłby dla mnie wystarczająco dobry. Innym, bardziej poprawnym rozwiązaniem byłoby to . Mogę też np. Uruchomić tenimport_bash_settings.py
skrypt, który prawdopodobnie robi coś podobnego. Jest więc oczywiście wiele sposobów, aby to zrobić. Z moim pytaniem zastanawiałem się, jak inni to rozwiązali.Jeśli Twoja dystrybucja używa PAM , możesz ustawić zmienne środowiskowe w swoim
~/.pam_environment
pliku.źródło
Możesz rozpocząć Fish from Bash. Jeśli to zrobisz, Fish odziedziczy wszystkie zmienne środowiskowe (
export FOO=bar
) po Bash. W tym momencie Bash będzie już czytał twoje.profile
(lub podobne).źródło