Подоболочки Bash

Podobolocki Bash



Иногда требуется запустить одну или несколько команд или сценариев в фоновом режиме. Эту задачу можно выполнить, записав все команды или сценарии в файл сценария и выполнив файл с помощью амперсанда (&) или выполнив команды или сценарии в подоболочке из текущей оболочки. Подоболочку можно использовать для выполнения нескольких команд или сценариев, заключая их в $() или обратные кавычки (`). В этом руководстве показаны методы использования подоболочки Bash.

Различные примеры подоболочки

В этой части руководства показаны различные способы выполнения скрипта в подоболочке.

Пример 1. Выполнение подоболочки с использованием одинарных и двойных кавычек

Создайте файл Bash со следующим сценарием, который печатает текущую дату и время. Затем выводится переменная $strVal, заключая сценарий подоболочки в одинарные и двойные кавычки.







#!/бин/баш

# Напечатать команду `date` в подоболочке

эхо 'Сегодня `дата` '

#Определить строковую переменную

стрВал '=' 'Подоболочка Баша'

# Напечатать переменную в подоболочке, используя одинарные кавычки

эхо 'Вывод одинарных кавычек:' '$(эхо $strVal)'

# Напечатать переменную в подоболочке, используя двойные кавычки

эхо 'Вывод двойных кавычек:' ' $(эхо $strVal) '

Следующий вывод появляется после выполнения скрипта. Сценарий подоболочки печатается в виде строки, когда он заключен в одинарные кавычки. Сценарий подоболочки выполняется, когда он заключен в двойные кавычки:





Пример 2. Поиск всех файлов определенного расширения с помощью подоболочки

Создайте файл Bash со следующим сценарием, который принимает расширение файла в качестве входных данных от пользователя. Затем в подоболочке выполняется команда «ls» для поиска всех файлов с этим конкретным расширением.





#!/бин/баш

эхо 'Введите имя расширения файла:'

#Возьмем расширение файла, по которому будет производиться поиск

читать доб.

#Проверить введенное значение

если [ [ $ext == '' ] ] ; затем

#Распечатать сообщение об ошибке

эхо «Продления не предусмотрено».

еще

эхо 'Имена файлов с $ext расширение:'

#Вывести все имена файлов с заданным расширением

эхо ' $(эхо `ls *.$ext`) '

быть

Следующий вывод появляется после выполнения скрипта с вводом «txt». Согласно выводу, в текущем местоположении существуют три текстовых файла:



Следующий вывод появляется после выполнения скрипта с пустым значением:

Пример 3: выполнение арифметического выражения в подоболочке

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

#!/бин/баш

#Определить родительскую переменную оболочки

число '=' 10

#Распечатать результат на основе переменной родительской оболочки

( ( результат '=' $ число + 5 ) )

эхо 'Сумма $ число +5= $результат '

#Создать переменную подоболочки с тем же именем, что и у родительской оболочки

( число '=' двадцать ; ( ( результат '=' $ число + 10 ) ) ; эхо 'Сумма $ число +5= $результат ' )

#Вывести результат снова на основе переменной родительской оболочки

эхо 'Сумма $ число +5= $результат '

Следующий вывод появляется после выполнения скрипта. Первый и последний выходные данные показывают результат основной оболочки. Второй вывод показывает результат подоболочки. Переменная основной оболочки не изменяется переменной подоболочки:

Пример 4: выполнение нескольких команд в подоболочке

Создайте файл Bash со следующим сценарием, который отправляет выходные данные команды «echo» в команду «sed», которая заменяет соответствующее строковое значение другой строкой. Вывод команды «echo» — «JavaScript». Итак, это значение сравнивается с «Java» и «JavaScript». Если совпадение найдено, совпадающие строки заменяются строкой «Тип».

#!/бин/баш

#Определить строковое значение

стрВал '=' 'Джаваскрипт'

#Вывести исходное строковое значение

эхо 'Строковое значение: $strVal '

#Распечатать значение подоболочки

эхо 'Значение подоболочки:'

эхо ' $(echo $strVal | sed 's|Java|Тип JavaScript|') '

Следующий вывод появляется после выполнения скрипта. В соответствии с выводом строка «Java» заменяется строкой «Type». Вывод подоболочки — «JavaScript TypeScript»:


Заключение

Одна или несколько команд или сценариев могут быть выполнены с использованием подоболочки, не затрагивая основную оболочку. Цели использования подоболочки объясняются в этом руководстве с использованием нескольких примеров. Различные типы задач, такие как поиск файлов, вычисление суммы чисел, замена строк и т. д., выполняются подоболочкой в ​​приведенных примерах. Концепция использования подоболочки правильно продемонстрирована, и новые пользователи Bash теперь смогут использовать подоболочку после прочтения этого руководства.