Команда Bash Source

Источник Bash

Команда source считывает и выполняет команды из файла, указанного в качестве аргумента, в текущей среде оболочки. Она полезна для загрузки функций, переменных и файлов конфигурации в скрипты оболочки.

source — это оболочка, встроенная в Bash и другие популярные оболочки, используемые в операционных системах Linux и UNIX. Её поведение может немного различаться в зависимости от оболочки.

Исходный синтаксис команды

Синтаксис source команды следующий:

 source FILENAME [ ARGUMENTS ] . FILENAME [ ARGUMENTS ]
  • source и . (точка) — это одна и та же команда.
  • Если FILENAME не является полным путём к файлу, команда будет искать файл в каталогах, указанных в переменной окружения $PATH . Если файл не найден в $PATH , команда будет искать его в текущем каталоге.
  • Если указаны какие-либо ARGUMENTS , они станут позиционными параметрами FILENAME .
  • Если FILENAME существует, код выхода source команды — 0 , в противном случае, если файл не найден, будет возвращен 1 .

Примеры исходных команд

В этом разделе мы рассмотрим несколько основных примеров использования команды source .

Функции снабжения

Если у вас есть скрипты оболочки, использующие те же функции, вы можете извлечь их в отдельный файл, а затем использовать этот файл в своих скриптах.

В этом примере мы создадим файл, включающий функцию bash , которая проверяет, является ли пользователь, запускающий скрипт, пользователем root, и если нет, выводит сообщение и завершает работу скрипта.

функции.sh

 check_root () { if [[ $EUID -ne 0 ]] ; then echo "This script must be run as root" exit 1 fi }

Теперь в каждом скрипте, который должен запускаться только пользователем root, просто укажите файл functions.sh и вызовите функцию:

 #!/usr/bin/env bash source functions.sh check_root echo "I am root"

Если вы запустите скрипт выше как пользователь, не являющийся пользователем root, он выведет сообщение «Этот скрипт должен быть запущен как пользователь root» и завершит работу.

Преимущество такого подхода заключается в том, что ваши скрипты будут меньше и более читабельными, вы сможете повторно использовать один и тот же файл функции при необходимости, а в случае, если вам потребуется изменить функцию, вы отредактируете только один файл.

Файл конфигурации Bash

С помощью команды source вы также можете читать переменные из файла. Переменные должны быть заданы с использованием синтаксиса Bash: VARIABLE=VALUE .

Давайте создадим тестовый файл конфигурации:

config.sh

 VAR1 = "foo" VAR2 = "bar"

В вашем bash-скрипте используйте команду source для чтения файла конфигурации:

 #!/usr/bin/env bash source config.sh echo "VAR1 is $VAR1 " echo "VAR2 is $VAR2 "

Если запустить скрипт, вывод будет выглядеть так:

 VAR1 is foo VAR2 is bar

Заключение

В этом руководстве вы узнали, как использовать встроенную команду source в своих скриптах оболочки.

Если у вас есть вопросы или пожелания, не стесняйтесь оставлять комментарии.

терминал bash

Связанные руководства

Источник

Добавить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *