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.
© 2022 fish-shell developers
Licensed under the GNU General Public License, version 2.
https://fishshell.com/docs/3.4/cmds/source.html