运行SQL时,Bash中的`

前端之家收集整理的这篇文章主要介绍了运行SQL时,Bash中的`前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我需要执行一个包含sql的bash脚本,所以我使用脚本将自定义配置添加到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?我似乎无法找到有关此命令或关键字的更多信息.

最佳答案
EOsqlBash Here Document块的限制字符串.限制字符串可以是块中未显示的任何文本.它表示文本块的开头和结尾.

变量替换在这里的文档中正常工作:

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

然后使用变量set运行它:

$MY_EXTENSION=something ./test.sh
something

在Docker中你需要ENV MY_EXTENSION =你的Dockerfile或docker中的东西运行-e MY_EXTENSION = something< image>在您的命令行上,以设置环境.

猜你在找的Docker相关文章