Команда source в Linux

Опубликовано admin - вт, 09/20/2022 - 15:21

В Linux команда source — встроенная команда оболочки, которая считывает и выполняет содержимое файла в текущей оболочке.

Использование команды source в Linux

Считываемые файлы обычно содержат список команд, переданных интерпретатору для чтения и выполнения.

Исходная команда не имеет параметров, и аргументом является только файл.

Содержание

Синтаксис

$ 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 позволяет запускать нескольких команд из одного файла. В ряде случаев это может быть очень удобно.

Поделиться с друзьями