zaLinux.ru

Как переменной присвоить значение в несколько строк в скрипте Bash


Оператор << называется here document. С его помощью можно ввести строку состоящую из нескольких строк или присвоить переменной многострочное значение.

Если вы хотите переменной присвоить многострочное значение, то это можно сделать примерно так:

a=`cat <<_EOF_
1
2
3
_EOF_
`

Выведем значение переменной:

echo "$a"

То есть общий вид конструкции присвоения переменной многострочного значения:

ПЕРЕМЕННАЯ=`cat <<_EOF_
СТРОКА1
СТРОКА2
СТРОКА3
_EOF_`

echo "$ПЕРЕМЕННАЯ"

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

В следующем примере переменной GetCapabilities присваивается многострочное значение в формате XML:


#!/bin/bash

GetCapabilities=`cat <<_EOF_
    <s:Envelope
        xmlns:s="http://www.w3.org/2003/05/soap-envelope">
        <s:Body
            xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
            xmlns:xsd="http://www.w3.org/2001/XMLSchema">
            <GetCapabilities
                xmlns="http://www.onvif.org/ver10/device/wsdl">
                <Category>
                    All
                    </Category>
                </GetCapabilities>
            </s:Body>
        </s:Envelope>
_EOF_`

Here document это весьма полезная конструкция, к примеру, с её помощью можно делать шаблоны текста, меню, выводимых данных:

#!/bin/bash

userName="MiAl (Alex)"
site=ZaLinux.ru
status=admin

cat <<_EOF_
User: $userName
Web-site: $site
Role: $status
_EOF_

Вывод:

User: MiAl (Alex)
Web-site: ZaLinux.ru
Role: admin

Здесь вы найдёте информацию о том, как использовать << (here document) непосредственно в командной строке, а не только в скриптах.


Рекомендуемые статьи:

1 Комментарий

  1. Павел

    Благодарю за качественную ифнормацию.

Оставить комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *