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
export
przekazywać 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 dodajesource
jako bardziej czytelny synonim, ale nie można polegać na tym, że jest dostępny w sh. Wreszcie. ./script
zamiast tego,. script
jeśli chcesz uniknąć niespodzianek. mywiki.wooledge.org/BashFAQ/060