Учебник BASH Heredoc

Как использовать здесь документ в программировании на bash

Блок кода или текста, который может быть перенаправлен в командный сценарий или интерактивную программу, называется здесь документом или HereDoc . Различные типы языков сценариев, такие как bash, sh, csh, ksh и т. Д., Могут принимать текстовый ввод напрямую, используя здесь документ, без использования какого-либо текстового файла. Поэтому, когда кодировщику требуется меньше текстовых данных, тогда использование кода и данных в одном файле — лучший вариант, и это можно легко сделать, используя здесь документы в скрипте. Без языка сценариев здесь документ также можно использовать на различных языках высокого уровня, таких как php, perl и т. Д. Как вы можете использовать здесь документ в сценарии bash, показано в этом руководстве.

Чтобы использовать здесь документ в В любом сценарии bash вы должны использовать символ , за которым следует любой идентификатор-разделитель после любой команды bash, и закрыть HereDoc, используя тот же идентификатор-разделитель в конце текста. Синтаксис записи HereDoc показан ниже.

Command . . .
. . .
HeredocDelimiter

Использование простого текста HereDoc

Предположим, команда `cat` и разделителем HereDoc является ADDTEXT . Откройте текстовый редактор и создайте файл bash с именем hd-example1.sh со следующим кодом. Когда вы используете HereDoc в любом скрипте, необходимо сохранить одно и то же имя как для начального, так и для конечного разделителя.

#!/Bin/bash
cat Этот текст
добавлен в документе Here
ADDTEXT

Теперь перейдите в папку сценария и выполните следующую команду, чтобы выполнить сценарий. Здесь скрипт хранится в папке Documents.

$ bash hd-example1.sh

HereDoc использует ‘-‘ символ для подавления любого пробела табуляции в каждой строке текста heredoc. В следующем примере в начале каждой строки добавляется пробел tab , а перед начальным разделителем используется символ ‘-‘ . Когда сценарий выполняется, все пробелы табуляции в начале каждой строки опускаются, но это не влияет на нормальное пространство. Здесь создается новый файл с именем hd-example2.sh для проверки работы ‘-‘ .

#!/bin/bash
cat Строка-1: Здесь документ полезен для печати короткого текста
Строка-2: Здесь документ может быть используется для форматирования текста
Строка-3: Здесь Документ может печатать переменную в тексте
Строка-4: Здесь Документ с ‘-‘ удаляет пространство табуляции из строки
ADDTEXT2

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

$ bash hd-example2. sh

Использование Переменная в HereDoc Text

Создайте новый сценарий bash со следующим кодом. Здесь объявлены две переменные с именами start и end . Эти переменные используются в тексте документа hereDoc. Если вы используете кавычки в начале разделителя HereDoc, тогда значение переменной не будет печататься в консоли.

#!/Bin/bash
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 . Если хотите, можете также запустить этот файл. Задача нового файла — умножить два числа и распечатать результат.

#!/Bin/bash
NewFile = output.sh
(
cat #!/bin/bash

echo «Этот сценарий создает новый файл»

var1 = 10
var2 = 50

((result = $ var1 * $ var2))
echo «The result = $ result»
ADDTEXT4
)> $ NewFile

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

$ bash hd-exampl4.sh
$ cat output.sh
$ bash output .sh

Функция использования с HereDoc

Вы можете передавать входные значения в переменные любой функции сценария bash из содержимого HereDoc. Создайте еще один новый файл bash с именем hd-example5.sh , чтобы проверить, как функцию можно использовать с HereDoc. Добавьте в файл следующий код. В скрипте объявлена ​​функция с именем BookInfo , которая будет брать данные из текста HereDoc. В функции объявлено шесть переменных с именами ISBN, bookName, authorName, edition, публикация и цена. Чтобы правильно установить значение переменных, вы должны поддерживать порядок значений в разделе HereDoc в соответствии с переменными, объявленными в функции. После задания данных в переменных функции, значение цены рассчитывается с учетом скидки 10% и выводится значения всех переменных в консоль.

#!/Bin/bash
# Объявить функцию, которая будет извлекать данные из документа 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

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

$ hd-example5 .sh

Здесь значение переменной цены будет равно 100 из текста HereDoc. После установки 10% скидки на значение цены будет установлено значение 90. Таким образом, после выполнения в консоли отобразится следующий вывод.

Команда` cat` используется в большинстве приведенных выше примеров. Но вы также можете использовать любые другие команды bash с HereDoc. В следующем примере другая команда bash wc используется для подсчета общего количества строк и слов текста HereDoc.

В приведенном выше тексте HereDoc есть три строки и девять слов. Запустите сценарии, чтобы проверить вывод.

$ bash hd-example6.sh

Примеры, показанные в этом руководстве, помогут вам понять использование HereDoc в сценарии bash. Использование здесь документа в сценарии bash поможет вам упростить задачу разработки.

Оцените статью
nanomode.ru
Добавить комментарий