В Linux команда source
— встроенная команда оболочки, которая считывает и выполняет содержимое файла в текущей оболочке.
Считываемые файлы обычно содержат список команд, переданных интерпретатору для чтения и выполнения.
Исходная команда не имеет параметров, и аргументом является только файл.
Содержание
Синтаксис
$ source файл [аргументы]
Выполнение команд из файла в текущем командном процессоре:
-
читает и выполняет команды из указанного файла в текущем командном процессоре;
-
файл ищется в каталогах, указанных в переменной $PATH;
-
если указаны аргументы, они становятся позиционными параметрами при выполнении файла.
Состояние выхода:
-
возвращает состояние последней выполненной команды из файла;
-
возвращает ошибку, если файл не удаётся прочитать.
Примеры использования команды source в Linux
Передаём файлу example.txt
, находящемуся в домашнем каталоге, в качестве аргумента список команд. Каждая команда будет выполняться построчно.
Содержимое файла example.txt
:
oleg@mobile:~:$ cat example.txt
ls
date
time
Результат выполнения команды source
:
oleg@mobile:~:$ source example.txt
abc.txt backgrounds/ Desktop/ Documents/ mailbox/ skype-export/ tmp/ wifi/ Yandex.Disk/
Apps/ bin/ Directory/ Downloads/ photo/ slimthemes/ webprojects/ www/ Документы/
aur/ build/ docs/ example.txt recode/ store/ webupload/ xep/ Загрузки/
Вт 20 сен 2022 14:45:09 EEST
real 0m0,000s
user 0m0,000s
sys 0m0,000s
oleg@mobile:~:$
Немного усложняем задачу, изменив содержимое файла на следующее:
oleg@mobile:~:$ cat example.txt
echo "Текущий каталог:"
pwd
echo "Сегодняшняя дата и время:"
date
Получаем следующий результат:
oleg@mobile:~:$ source example.txt
Текущий каталог:
/home/oleg
Сегодняшняя дата и время:
Вт 20 сен 2022 14:53:17 EEST
oleg@mobile:~:$
Вывод
Из этого краткого руководства следует то, что в Linux команда source
позволяет запускать нескольких команд из одного файла. В ряде случаев это может быть очень удобно.