Как исполняемые строки подоболочки выводятся в основную оболочку без выполнения команды source? - PullRequest
0 голосов
/ 09 апреля 2019

Допустим, у меня есть исполняемый скрипт оболочки с именем foo.sh. Внутри это простое эхо "Hello World". Насколько я понимаю, когда я запускаю это через ./foo.sh, запускается подоболочка, которая выполняет эхо-строку "Hello World".

Почему тогда я вижу вывод команды echo в моей основной оболочке / терминале? Я бы подумал, что вам нужно сделать «source ./foo.sh» вместо простого «./foo.sh», чтобы увидеть результат в вашей текущей оболочке.

Кто-нибудь из вас может помочь уточнить?

1 Ответ

3 голосов
/ 09 апреля 2019

Стандартный вывод наследуется .Цитирование из Справочное руководство Bash :

Среда выполнения команд

Когда требуется простая команда, отличная от встроенной функции или функции оболочкивыполняется, он вызывается в отдельной среде выполнения, которая состоит из следующего.Если не указано иное, значения унаследованы от оболочки.

  • открытые файлы оболочки, а также любые изменения и дополнения, указанные в перенаправлениях к команде
  • ...
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...