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