[bash] zmienne środowiskowe

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

#!/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

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

7

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

#!/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

./skrypt.sh

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

source skrypt.sh

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

1 użytkowników online, w tym zalogowanych: 0, gości: 1