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