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