Niedawno odkryłem /etc/environment
, że wydaje się to bardziej standardowy sposób ustawiania prostych zmiennych środowiskowych niż skrypty, ale zastanawiałem się, czy istnieje sposób na odwoływanie się do zmiennych środowiskowych w pliku / etc / environment.
To znaczy, mam to:
JAVA_HOME="/tools/java"
GRAILS_HOME="/tools/grails"
GROOVY_HOME="/tools/groovy"
GRADLE_HOME="/tools/gradle"
PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games"
Jeśli jednak spróbuję dodać $JAVA_HOME/bin
do definicji ŚCIEŻKI, dostanę $ JAVA_HOME / bin, a nie zmienną interpolowaną. Aby temu zaradzić, tworzę environment.sh w profile.d, aby dodać /bin
wpisy do ścieżki, ale wydaje się to niechlujne i niezorganizowane.
Czy istnieje sposób ponownego odniesienia zmiennych środowiskowych w / etc / environment?
źródło
/etc/environment
, uciekłem się/etc/profile
, dzięki za sugestię.Dokumentacja Ubuntu sprawia, że wydaje się to niemożliwe. ALE jest odpowiedź.
ODPOWIEDŹ : Twórz trwałe, systemowe zmienne środowiskowe w
/etc/.bashrc
Szczegóły:
Oto kilka dodatkowych szczegółów z dokumentacji zmiennych środowiskowych .
Oficjalna rekomendacja to używanie
/etc/environment
, tak jak próbowałeś. Problem w tym, że ten plik nie jest plikiem skryptu. Innymi słowy, nie można używać zmiennych w deklaracjach zmiennych.Dokumentacja jest kontynuowana z 2 innymi plikami „Niezalecane”
/etc/profile
i/etc/bash.bashrc
./etc/profile
„robi niewiele więcej niż wywoływanie pliku /etc/bash.bashrc”. Zamiast tego wybierz/etc/bash.bashrc
ponieważ „Ubuntu jest domyślnie skonfigurowane do uruchamiania tego pliku za każdym razem, gdy użytkownik wejdzie do powłoki lub środowiska pulpitu”.źródło