2010-06-14 7 views

Odpowiedz

6

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.

1

Zobacz funkcje setenv (3) i getenv (3).

12

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).

+0

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

+0

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