Kiedy uruchamiam export $PATH
w bash, pojawia się błąd not a valid identifier
. Dlaczego?
Komentarze
Odpowiedź
Uruchomienie export $PATH
spowoduje próbę wyeksportowania zmiennej o nazwie równej wartości z $PATH
(po podziale na słowa ). Oznacza to, że jest to równoznaczne z napisaniem czegoś takiego jak 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:/bin
nie jest prawidłową nazwą zmiennej, kończy się niepowodzeniem. To, co chcesz zrobić, to export PATH
.
export
(odpowiednik declare -x
) w Bash po prostu udostępnia zmienną podpowłoki.
Aby bezpiecznie i czytelnie wydrukować wartość zmiennej, użyj printf %q "$PATH"
.
Komentarze
- Zasadniczo utworzyłem kilka zmiennych, JAVA_HOME, MAVEN_HOME i chcę się upewnić, że bash je poprawnie ustawił, więc eksportuję $ PATH, aby sprawdzić, czy zmienne ścieżki zostały poprawnie ustawione na zmienną PATH
- To zależy od powłoki, a nie od systemu operacyjnego. Byłbym zaskoczony, gdyby
export
kiedykolwiek działał w ten sposób w Bash. - Dodatkowo zmienna PATH jest już wyeksportowany i nie musi zostać wyeksportowane ponownie.
Odpowiedz
Następujące polecenie export $PATH=somePath
zwróci not a valid identifier
, a to ze względu na $
przed zmienną PATH
.
rozwiązanie:
export PATH=somePath
Komentarze
- To to dokładnie odpowiada na moje pytanie. Dzięki Kevin
Odpowiedź
Powinieneś użyć tego w ten sposób:
export PATH=$PATH:/something/bin
Zamiast:
export $PATH=$PATH:/something/bin
wystarczy usunąć znak $
z lewej strony strony.
Odpowiedź
Prawdopodobnie musiałeś dołączyć $ PATH do istniejącej zmiennej PATH?
export PATH=$PATH:/something/bin
Komentarze
- OK, to w tym samym parku piłek co pytanie, ale w lewym polu .
$
jest „wartością”. ' ponownie eksportujesz zmiennąPATH
, nie uzyskujesz dostępu do jej wartości, więc ' sexport PATH
bez$
.