Я написав наступний сценарій, щоб встановити деякі змінні середовища, коли це необхідно.
#!/bin/sh
export BASE=/home/develop/trees
echo $BASE
export PATH=$PATH:$BASE
echo $PATH
Нижче команди та результатів, які я бачу на своєму терміналі: сценарій працює, але змінні не встановлюються в кінці.
~$: ./script.sh
/home/develop/trees
/bin:......:/home/develop/trees
~$: echo $BASE
~$:
Що не так? Заздалегідь спасибі. Мирко
exportпередавати змінні в допоміжні оболонки, субшалл - це копія вашої поточної оболонки, включаючи змінні та функції і т.д. По-друге,.це команда POSIX для пошуку джерел. Bash додаєsourceдля нього більш читабельний синонім, але ви не можете розраховувати на те, що він доступний у ш. Нарешті,. ./scriptзамість того,. scriptякщо ви хочете уникати сюрпризів. mywiki.wooledge.org/BashFAQ/060