Używam zsh i próbuję dodać nowy wpis ( /home/david/pear/bin
) do PATH
zmiennej, ale nie wiem jak.
Najbardziej dezorientuje mnie to, że PATH
w moim ~/.zshrc
pliku nie ma ani jednego odwołania do zmiennej , ale echo $PATH
zwraca:
/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
Więc PATH
gdzieś ustawiana jest zmienna.
PATH="/home/david/pear/bin:/usr/bin:etc"
abyPATH=/home/david/pear/bin:/usr/bin:etc
na to, aby zatrzymać się w zshrc.PATH
po procesie nadrzędnym, który ją uruchomił, a następnie, gdy zostanie uruchomiona.zshrc
(.bashrc
lub cokolwiek innego), pozwala to na dodanie dodatkowych elementów do tej ścieżki.W rzeczywistości użycie ZSH pozwala na użycie specjalnego mapowania zmiennych środowiskowych. Możesz więc po prostu zrobić:
Dla mnie jest to bardzo fajna funkcja, którą można propagować do innych zmiennych. Przykład:
źródło
~/.zshrc
jest pozyskiwany po.profile
i zastępuje wszystko w.profile
. Trochę pociągnęłam za włosy, żeby je rozgryźć.-x
i pozostawić tylko unikalne wartości w zmiennej z-U
, domyślnie przyjmuje się dwukropek, więc może to być:typeset -TUx PATH path
path=(...)
(bez odniesienia$path
lub$PATH
wewnątrz) przypisuje, dołączapath=(... $path)
ipath+(...)
dołącza.Możesz dołączyć do swojego
PATH
w minimalny sposób. Nie potrzebujesz nawiasów, chyba że dodajesz więcej niż jeden element. Zwykle też nie potrzebuje cytatów. Tak więc prosty, krótki sposób na dołączenie jest:Wspólne użycie
Następnie wspólnym wzorcem testowania nowego skryptu / pliku wykonywalnego jest:
Ta składnia pisana małymi literami jest używana
path
jako tablica , ale wpływa również na jej odpowiednik partnera wielkiej literyPATH
(z którym jest „związany” przeztypeset
).(Zauważ, że nie
:
jest potrzebne / potrzebne jako separator ).Powiązane ciekawostki
Traktowanie w
path
ten sposób (jako tablicę) oznacza również: nie trzeba robić,rehash
aby znaleźć nowo załatane polecenia.Spójrz również na
vared path
dynamiczny sposób edycjipath
i innych rzeczy.To
path
pytanie może Cię zainteresować , ale ponieważ mówimy o eksportach i tablicach, pamiętaj, że tablic zasadniczo nie można eksportować.Możesz nawet zapobiec
PATH
przyjmowaniu zduplikowanych wpisów (patrz to i to ):źródło
path+='my/path' # for fun
. To oczywiste, jeśli masz spacje, ale nie tak bardzo, jeśli masz komentarze.path
. Poprzedzenie:
jest wymagane dlaPATH
, jak następuje w .zshrcPATH+=:/Users/path/to/my/folder
jedna wkładka, bez otwierania
~/.zshrc
plikulub
Aby zobaczyć efekt, wykonaj
source ~/.zshrc
tę samą kartę lub otwórz nową kartęźródło
Dodano ścieżkę do ~ / .zshrc
sudo vi ~/.zshrc
dodaj nową ścieżkę
Zaktualizuj ~ / .zshrc
Zapisz ~ / .zshrc
source ~/.zshrc
Sprawdź ŚCIEŻKĘ
echo $PATH
źródło
Bash
droga.OPCJA 1: Dodaj tę linię do ~ / .zshrc:
Następnie musisz uruchomić
source ~/.zshrc
, aby zmiany odniosły skutek LUB zamknąć to okno i otworzyć noweOPCJA 2: uruchom go w konsoli terminala, aby dodać tę ścieżkę tylko do bieżącej sesji okna terminala. Po zamknięciu okna / sesji zostanie ono utracone.
źródło