source — оценка содержимого файла
Синопсис
source FILE [ARGUMENTS ...] SOMECOMMAND | source
Описание
source оценивает команды из указанного файла FILE в текущей оболочке как новый блок кода. Это отличается от запуска нового процесса для выполнения команд (т. е. fish < FILE) поскольку команды будут оцениваться текущей оболочкой, что означает, что изменения переменных оболочки повлияют на текущую оболочку. Если после имени файла указаны дополнительные аргументы, они будут вставлены в переменную argv. Переменная argv не будет включать имя файла, который был вызван.
fish будет искать в рабочей директории для разрешения относительных путей, но не будет искать в PATH.
Если файл не указан и стандартный ввод не является терминалом, или если имя файла - используется, будет прочитан стандартный ввод.
Код выхода source — это код выхода последней задачи для выполнения. Если при открытии или чтении файла что-то пойдёт не так, source завершается с ненулевым кодом выхода.
. (один символ точки) — алиас для команды source. Использование . устарело в пользу source, и . будет удалено в будущих версиях fish.
source создаёт новую локальную область видимости; set --local внутри вызванного блока не повлияет на переменные в окружающем пространстве.
Опция -h или --help отображает справку по использованию этой команды.
Пример
source ~/.config/fish/config.fish # Causes fish to re-read its initialization file.
Ограничения
В версиях fish до 2.3.0 переменная argv имела бы один элемент (имя вызванного файла), если аргументы отсутствуют. В противном случае она содержала бы аргументы без имени вызванного файла. Это поведение было очень запутанным и отличалось от других оболочек, таких как bash и zsh.
© 2005-2009 Axel Liljencrantz, 2009-2023 fish-shell contributors
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.6/cmds/source.html