[bash] zmienne środowiskowe

TO
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 23
0

Kurde utknąłem na trywializmie...
Potrzebuje za pomoca skrypty bash-a ustawić nową zmienną środowiskową tak żeby inne skrypty mogły ją czytać/modyfikować. Iiiiii nie wiem jak

Kopiuj
#!/bin/bash

export TEST="yes"

nie działa. Tzn zmienna TEST widziana jest tylko z poziomu skryptu gdy skrypt sie kończy to po zmiennej nie ma śladu.
Jak to załatwić coby działało?

Torin

KamilAdam
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Silesia/Marki
  • Postów: 5550
4

Can I export a variable to the environment from a bash script without sourcing it?

EDIT:

  • za pomocą ./plik.sh się nie da
  • można za pomocą . plik.sh lub source plik.sh
TO
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Kraków
  • Postów: 23
0
KamilAdam napisał(a):

Can I export a variable to the environment from a bash script without sourcing it?

EDIT:

  • za pomocą ./plik.sh się nie da
  • można za pomocą . plik.sh lub source plik.sh

OKI juz patrze - dzięki.

PerlMonk
  • Rejestracja: dni
  • Ostatnio: dni
  • Lokalizacja: Warszawa 🐪
  • Postów: 1719
7

Gwoli wyjaśnienia tego, co napisał @KamilAdam... Ustawianie zmiennych z polecenia export ustawia zmienne dla procesu bieżącego i potomnych. Dla kod

Kopiuj
#!/bin/bash

set dupa=1
  1. Otwiera nowy potok.
  2. Polecenie export ustawia zmienną
  3. Skrypt kończy działanie i nie ma procesów potomnych

A zatem wykonanie tego skryptu poleceniem

Kopiuj
./skrypt.sh

nic nie da, bo zostanie tu uwzględniona linia #!/bin/bash i utworzy się proces potomny. Ale jeśli zrobimy to poleceniem

Kopiuj
source skrypt.sh

linia #!/bin/bash zostanie zignorowana i skrypt.sh wykona się w tym samym procesie, w którym wywołałem skrypt.

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.