source — это удобная встроенная команда оболочки, которая принимает аргументы, анализирует команды в сценарии и выполняет их в среде оболочки. Содержимое файла считывается источником, а затем передается интерпретатору языка команд инструментов (TCL), который выполняет команды.

Давайте узнаем, как использовать исходный код для выполнения команд и работы со средами оболочки в Linux, а также кратко объясним, чем он отличается от команды bash.

Использовать источник для выполнения команд в файле

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

трогатьтест.текст
витест.текст

# Запишите команды в текстовый файл:
эхо "Привет!"
pwd
лс

# Исходный файл либо с исходным кодом, либо с точечным синтаксисом
. тест.текст
источниктекст.текст

Запишите текстовый файл и перейдите к его передаче в качестве аргумента исходной команде. Система выполнит команды в файле и вернет вывод.

instagram viewer

Теперь, когда вы знаете основы использования исходного кода, давайте попробуем изменить среду оболочки Bash. Однако, прежде чем продолжить, вы должны иметь базовое представление о переменные окружения в линукс.

Используйте исходную команду для обновления среды оболочки Bash.

В Linux переменные среды наследуются, но неизменяемы. Если вы выполняете сценарий оболочки Bash, который изменяет переменную окружения $TEST, сценарий создаст новый, разветвленный процесс оболочки, и в нем будет происходить модификация $TEST вместо оригинального Bash среда.

Дочерний процесс не сможет изменить среду родительского процесса. Он может изменять только свою среду. Давайте разберемся с этим на практическом примере:

экспорт ТЕСТ="деб"
ви пример

# Введите эти команды в файл
экспорт ТЕСТ="кровать"
эхо $ТЕСТ

# Записать файл, сделать его исполняемым, а затем выполнить
chmod +x пример
./пример # это вернет "кровать"
эхо $ТЕСТ # это вернет "deb"

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

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

# Создаем новый файл и редактируем его
ви тест файл
. test_file
эхо $ТЕСТ # Это вернет "кровать"

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

Это все шаги, необходимые для обновления среды оболочки Bash с помощью исходной команды.

Разница между командами Linux bash и source

Разница между командами Linux bash и source заключается в том, что когда вы выполняете скрипт с помощью команды bash, она сообщает Linux ядро для создания нового процесса Bash для чтения и выполнения сценария, копирования вывода в исходный процесс оболочки и отображения его.

Но исходная команда встроенная оболочка который читает и оценивает файл в текущем процессе оболочки. Таким образом, все изменения, сделанные скриптом, будут сохранены в оболочке Bash.

Устранение ошибок исходной команды

В некоторых системах Linux вы можете столкнуться с ошибкой «источник не найден» при попытке использовать команду источника. Вы можете исправить эту ошибку двумя способами:

1. Изменить оболочку

Некоторые оболочки не поддерживают исходную команду. В этом случае вам нужно изменить среду оболочки с помощью chsh -s ($ имя_какой оболочки) команда.

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

2. Используйте синтаксис точки/точки

Некоторые среды оболочки не поддерживают "источник"синтаксис, но альтернатива"."синтаксис. Синтаксис «исходный» является синонимом точки в Bash. Но это не работает в оболочке POSIX, поэтому для максимальной совместимости используйте синтаксис точки.

Основные команды Linux, которые вы должны знать

Команды оболочки Linux — отличный способ взаимодействия с системой с помощью терминала. Они являются самой сутью использования систем *NIX.

Хотя вам не нужно знать все команды, знакомство с несколькими полезными, несомненно, окажется полезным, когда вы углубитесь в мир Linux.