Почему команды «bash» и «source» ведут себя по-разному? [закрыто]

Я использую Mac OS 10.8. Я запустил сценарий /sw/fink/bin/init.sh с помощью команды bash , которая должна была сделать папку fink / bin частью переменная $ PATH для текущего сеанса.

Команда fink не сработала, поэтому я снова запустил сценарий с . Команда , которую мне сказали, эквивалентна команде source ; Теперь я мог называть fink без точного пути.

Почему . работает, а не bash ? Это потому, что команды sh и bash запускаются со своей собственной временной переменной $ PATH ?

-1
задан 7 February 2013 в 11:59

1 ответ

bash somescript запустит новую оболочку bash, оценит ваш скрипт и затем выйдет. Скрипт увидит копию вашей текущей среды, но любые изменения будут отменены, когда скрипт завершится.

. somescript или source somescript оценят сценарий в вашем текущем контексте, поэтому изменения в существующих переменных среды или установка новых будут сохранены.

0
ответ дан 7 February 2013 в 11:59

Другие вопросы по тегам:

Похожие вопросы: