Napisałem następujący skrypt, aby w razie potrzeby ustawić niektóre zmienne środowiskowe.
#!/bin/sh
export BASE=/home/develop/trees
echo $BASE
export PATH=$PATH:$BASE
echo $PATH
Poniżej polecenia i wyników, które widzę na moim terminalu: skrypt działa, ale zmienne nie są ustawione na końcu.
~$: ./script.sh
/home/develop/trees
/bin:......:/home/develop/trees
~$: echo $BASE
~$:
Co jest nie tak? Z góry dziękuję. Mirko
exportprzekazywać zmiennych do podpowłoki, podpowłoka jest kopią bieżącej powłoki, w tym zmiennych i funkcji itp. Wyeksportowane zmienne są kopiowane do nowych procesów spawnowanych z powłoki, niezależnie od tego, czy jest to kolejna powłoka, czy nie. Po drugie,.to polecenie POSIX do pozyskiwania. Bash dodajesourcejako bardziej czytelny synonim, ale nie można polegać na tym, że jest dostępny w sh. Wreszcie. ./scriptzamiast tego,. scriptjeśli chcesz uniknąć niespodzianek. mywiki.wooledge.org/BashFAQ/060