Я использую Mac OS 10.8. Я запустил сценарий /sw/fink/bin/init.sh
с помощью команды bash
, которая должна была сделать папку fink / bin
частью переменная $ PATH
для текущего сеанса.
Команда fink не сработала, поэтому я снова запустил сценарий с . Команда
, которую мне сказали, эквивалентна команде source
; Теперь я мог называть fink без точного пути.
Почему .
работает, а не bash
? Это потому, что команды sh
и bash
запускаются со своей собственной временной переменной $ PATH
?
bash somescript
запустит новую оболочку bash
, оценит ваш скрипт и затем выйдет. Скрипт увидит копию вашей текущей среды, но любые изменения будут отменены, когда скрипт завершится.
. somescript
или source somescript
оценят сценарий в вашем текущем контексте, поэтому изменения в существующих переменных среды или установка новых будут сохранены.