Jak utworzyć nową zmienną środowiskową w systemie UNIX i używać jej w programie ??????Jak utworzyć nową zmienną środowiskową w systemie UNIX ....?
Odpowiedz
Zależy od powłoki. W bash
, można użyć:
export myvar=xyz
który będzie ustawić zmienną i udostępnić go do innych programów.
Jeśli chcesz, aby ustawić go na jeden wywołania programu, można użyć:
myvar=xyz ./myprog
ten będzie miał on ustawiony dla procesu myprog
ale nie po to wychodzi.
Zobacz funkcje setenv (3) i getenv (3).
Możesz określić, z której powłoki korzystasz: ps -o comm= -p $$
- Myślę, że jest bardziej lub mniej uniwersalna. Tak więc, w bash i niektórych podobnych muszli ...
Jeśli chcesz utworzyć zmienną dla jednego konkretnego przebiegu, można zrobić
MYVAR=value the_command_that_needs_myvar
Jeśli chcesz utworzyć go na całą sesję powłoki (tj . do momentu wylogowania):
export MYVAR=value
... a następnie można uruchomić:
the_command_that_needs_myvar
... tyle razy, ile yo lubisz podczas tej sesji i nadal będzie widział MYVAR
jako wartość value
.
Jeśli chcesz, aby był ustawiony dla siebie, dla wszystkich sesji logowania, umieść go w ~/.profile
.
Należy pamiętać, że pliki inicjujące basha mogą być jednym wielkim WTF. W zależności od tego, czy jest uruchamiany interaktywnie, przez sieć, lokalnie, AND w zależności od tego, czy jest wywoływany jako sh
czy bash
, będzie selektywnie odczytywać pewną kombinację ~/.bashrc
, ~/.profile
i ~/.bash_profile
. Przeczytaj sekcję PLIKÓW na stronie podręcznika bash
, aby uzyskać szczegółowe informacje.
Jeśli chcesz, aby był ustawiony dla każdego użytkownika, za każdym razem, gdy się loguje, umieść go w pliku /etc/profile
(chociaż jest tam również /etc/environment
, nie jestem pewien, jak szeroko jest to używane.).
Sprawdź również pytanie: "How to set environment variable for everyone under my linux system?", aby uzyskać więcej informacji.
(uwaga, niektóre z tych rad będą się różnić w zależności czy ty lub inni użytkownicy, należy użyć bash, myślnik, csh, ksh, itp ... ale to powinno działać w większości przypadków użycia).
Rzeczywiście, sortowanie, czy używać/etc/environment,/etc/profile, ~/.profile, ~/.kshrc, ~/.cshrc, ~/.bash_profile, ~/.bash_login, ~/.bashrc i wszystkie inne możliwości nie są dla osób o słabym sercu :-) – paxdiablo
To sprawia, że myślę o [The UNIX Hater's Handbook] (http://www.art.net/~hopkins/Don/unix-haters/handbook.html) - z pewnością pozostały WTFery ze starych, złych dni. Dodałem trochę o osobistych plikach konfiguracyjnych 'bash'. – detly
Jak Pax powiedział, to zależy od powłoki. – Alan