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