Что такое блок кода "<< - EOSQL " в Bash при запуске SQL?



Мне нужно выполнить скрипт bash, содержащий SQL, поэтому я использую скрипт для добавления пользовательских конфигураций в контейнер Postgres Docker, согласно документам здесь:



Https://github.com/docker-library/docs/tree/master/postgres#how-to-extend-this-image



Но я не знаю, что EOSQL означает. Вот пример моего сценария, взятого из документов выше:



#!/bin/bash
set -e

psql -v ON_ERROR_STOP=1 --username "$POSTGRES_USER" <<-EOSQL
CREATE USER docker;
CREATE DATABASE docker;
GRANT ALL PRIVILEGES ON DATABASE docker TO docker;
CREATE EXTENSION $MY_EXTENSION;
EOSQL


Итак, что такое EOSQL? Я не могу найти много информации об этой команде или ключевом слове.

808   1  

1 ответ:

EOSQL предел строку Баш вот документ блок. Строкой ограничения может быть любой текст, который не отображается в вашем блоке. Он обозначает начало и конец текстового блока.

Подстановка переменных будет работать как обычно в документе here:

#!/usr/bin/env bash
cat <<-EOF
$MY_EXTENSION
EOF

Затем запускаем его с переменным набором:

$ MY_EXTENSION=something ./test.sh
something

В Docker вам понадобится ENV MY_EXTENSION=something в вашем Dockerfile или docker run -e MY_EXTENSION=something <image> в командной строке для настройки среды.

Comments

    Ничего не найдено.