Как использовать здесь документ в программировании на bash
Блок кода или текста, который может быть перенаправлен в командный сценарий или интерактивную программу, называется здесь документом или HereDoc . Различные типы языков сценариев, такие как bash, sh, csh, ksh и т. Д., Могут принимать текстовый ввод напрямую, используя здесь документ, без использования какого-либо текстового файла. Поэтому, когда кодировщику требуется меньше текстовых данных, тогда использование кода и данных в одном файле — лучший вариант, и это можно легко сделать, используя здесь документы в скрипте. Без языка сценариев здесь документ также можно использовать на различных языках высокого уровня, таких как php, perl и т. Д. Как вы можете использовать здесь документ в сценарии bash, показано в этом руководстве.
Чтобы использовать здесь документ в В любом сценарии bash вы должны использовать символ , за которым следует любой идентификатор-разделитель после любой команды bash, и закрыть HereDoc, используя тот же идентификатор-разделитель в конце текста. Синтаксис записи HereDoc показан ниже.
. . .
HeredocDelimiter
Использование простого текста HereDoc
Предположим, команда `cat` и разделителем HereDoc является ADDTEXT . Откройте текстовый редактор и создайте файл bash с именем hd-example1.sh со следующим кодом. Когда вы используете HereDoc в любом скрипте, необходимо сохранить одно и то же имя как для начального, так и для конечного разделителя.
cat Этот текст
добавлен в документе Here
ADDTEXT
Теперь перейдите в папку сценария и выполните следующую команду, чтобы выполнить сценарий. Здесь скрипт хранится в папке Documents.
HereDoc использует ‘-‘ символ для подавления любого пробела табуляции в каждой строке текста heredoc. В следующем примере в начале каждой строки добавляется пробел tab , а перед начальным разделителем используется символ ‘-‘ . Когда сценарий выполняется, все пробелы табуляции в начале каждой строки опускаются, но это не влияет на нормальное пространство. Здесь создается новый файл с именем hd-example2.sh для проверки работы ‘-‘ .
cat Строка-1: Здесь документ полезен для печати короткого текста
Строка-2: Здесь документ может быть используется для форматирования текста
Строка-3: Здесь Документ может печатать переменную в тексте
Строка-4: Здесь Документ с ‘-‘ удаляет пространство табуляции из строки
ADDTEXT2
Выполните следующую команду, чтобы выполнить сценарий и показать результат.
Использование Переменная в HereDoc Text
Создайте новый сценарий bash со следующим кодом. Здесь объявлены две переменные с именами start и end . Эти переменные используются в тексте документа hereDoc. Если вы используете кавычки в начале разделителя HereDoc, тогда значение переменной не будет печататься в консоли.
start = «Всем привет»
end = «Удачи»
cat $ start
Добро пожаловать на сайт блога Linux.
$ end
ADDTEXT3
Когда вы запустите файл, будет показан следующий результат.
Создание нового файла bash с помощью HerDoc
В предыдущих примерах показано, как вы можете использовать HereDoc в любом сценарии bash. Вы также можете создать новый файл bash с помощью HereDoc, который показан в следующей части этого руководства. Создайте новый файл bash с именем hd-example4.sh со следующим кодом. Здесь объявлена переменная NewFile для установки имени файла нового сценария bash, который будет создан после выполнения файла hd-example4.sh. После выполнения будет создан новый файл bash с именем output.sh . Если хотите, можете также запустить этот файл. Задача нового файла — умножить два числа и распечатать результат.
NewFile = output.sh
(
cat #!/bin/bash
echo «Этот сценарий создает новый файл»
var1 = 10
var2 = 50
((result = $ var1 * $ var2))
echo «The result = $ result»
ADDTEXT4
)> $ NewFile
Выполните следующие команды, чтобы проверить приведенный выше сценарий. Первая команда выполнит основной файл сценария. Вторая команда отобразит содержимое только что созданного файла. Третья команда запустит только что созданный файл bash.
$ cat output.sh
$ bash output .sh
Функция использования с HereDoc
Вы можете передавать входные значения в переменные любой функции сценария bash из содержимого HereDoc. Создайте еще один новый файл bash с именем hd-example5.sh , чтобы проверить, как функцию можно использовать с HereDoc. Добавьте в файл следующий код. В скрипте объявлена функция с именем BookInfo , которая будет брать данные из текста HereDoc. В функции объявлено шесть переменных с именами ISBN, bookName, authorName, edition, публикация и цена. Чтобы правильно установить значение переменных, вы должны поддерживать порядок значений в разделе HereDoc в соответствии с переменными, объявленными в функции. После задания данных в переменных функции, значение цены рассчитывается с учетом скидки 10% и выводится значения всех переменных в консоль.
# Объявить функцию, которая будет извлекать данные из документа Here
BookInfo ()
{
читать ISBN
читать имя книги
читать имя автора
читать издание
читать публикацию
читать цену
}
# Здесь объявить часть документа для отправки данных в функцию
BookInfo ISBN-78633567809
Easy Laravel 5
Джейсон Гилмор
9-е издание
Learpub
100
ADDTEXT5
# Вывести значение переменных функции после расчета значения цены со скидкой 10%
((price = $ price- $ price * 10/100))
echo «$ bookName»
echo «$ authorName»
echo «$ edition, $ publishing»
echo «$» $ price
Теперь запустите следующую команду, чтобы выполнить сценарий и проверить результат.
Здесь значение переменной цены будет равно 100 из текста HereDoc. После установки 10% скидки на значение цены будет установлено значение 90. Таким образом, после выполнения в консоли отобразится следующий вывод.
Команда` cat` используется в большинстве приведенных выше примеров. Но вы также можете использовать любые другие команды bash с HereDoc. В следующем примере другая команда bash wc используется для подсчета общего количества строк и слов текста HereDoc.
В приведенном выше тексте HereDoc есть три строки и девять слов. Запустите сценарии, чтобы проверить вывод.
Примеры, показанные в этом руководстве, помогут вам понять использование HereDoc в сценарии bash. Использование здесь документа в сценарии bash поможет вам упростить задачу разработки.