Как использовать команду Bash Source в Linux

12 set 2022 2 min di lettura
Как использовать команду Bash Source в Linux
Indice dei contenuti

Введение

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

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

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

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

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

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

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

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

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

sudo nano functions.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.

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

sudo nano 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, встроенную в сценарии оболочки.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.