„Niepoprawny identyfikator”, gdy „eksportuję $ PATH”

37

Kiedy uruchamiam export $PATHbash, pojawia się błąd not a valid identifier. Czemu?

ThaSaleni
źródło
8
W bash i innych powłokach $jest „wartością”. Eksportujesz zmienną PATH, nie uzyskując dostępu do jej wartości, więc nie export PATHma jej $.
Gilles „SO- przestań być zły”,
Częściej podobny problem: askubuntu.com/questions/529919/…
Vadzim

Odpowiedzi:

40

Uruchamianie export $PATHpostara się wyeksportować zmienną o nazwie równej wartości z $PATH(po podziałem na słowa ). Oznacza to, że jest to odpowiednik pisania czegoś takiego export /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin. A ponieważ /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/binnie jest prawidłową nazwą zmiennej, zawodzi. Co chcesz zrobić export PATH.

export(odpowiednik declare -x) w Bash po prostu udostępnia zmienną dla podpowłoki.

Aby wydrukować wartość zmiennej bezpiecznie i czytelnie, użyj printf %q "$PATH".

l0b0
źródło
Zasadniczo stworzyłem niektóre zmienne, JAVA_HOME, MAVEN_HOME i chcę się upewnić, że bash poprawnie je ustawił, więc eksportuję $ PATH, aby zobaczyć, czy zmienne ścieżki zostały poprawnie ustawione na zmienną PATH
ThaSaleni
1
Jest to zależne od powłoki, a nie od systemu operacyjnego. Byłbym zaskoczony, gdyby exportkiedykolwiek tak pracował w Bash.
l0b0
Dodatkowo zmienna PATH jest już wyeksportowana i nie trzeba jej eksportować ponownie.
Kusalananda
19

Następujące polecenie export $PATH=somePathpowróci, not a valid identifiera to z powodu $poprzedniej PATHzmiennej.

rozwiązanie:

export PATH=somePath

Kevin Crain
źródło
0

Powinieneś użyć go w ten sposób:

export PATH=$PATH:/something/bin

Zamiast:

export $PATH=$PATH:/something/bin

po prostu usuń $znak z lewej strony.

Abd ElRahman Mahareek
źródło
-1

Prawdopodobnie musiałeś dołączyć $ PATH do swojej istniejącej zmiennej PATH?

export PATH=$PATH:/something/bin
Thad Guidry
źródło
2
OK, to jest w tym samym parku, co pytanie, ale na lewym polu.
G-Man mówi „Przywróć Monikę”