我需要帮助理解一些shell脚本以连接到Redshift数据库,因为Bash / shell对我来说并不熟悉。
使用pgpass
,我需要获取凭据吗? :
cat > ./.pgpass <<-CREDS
$HOSTNAME:$PORT_NUMBER:$DBNAME:$USERNAME:$PASSWORD
CREDS
什么是<<-
?这是评论吗?快速搜索说<<END
是评论但与<<-CREDS
有什么不同?
这与#2有些相关,<<-ATOMIC
和\x
在此代码段中的含义是什么?
$PSQL_CMD <<-ATOMIC
\x
SELECT column1 FROM $THETABLE WHERE column1='true';
ATOMIC
由于ATOMIC
位于此区块的末尾,我会假设它说明了块或其他内容的结束,但我不了解文档或其他任何内容。
如何将SELECT
语句的返回值分配给变量并将其回显到电子邮件中?我有一行发送电子邮件,但不知道如何将SELECT
查询中返回的值分配到变量中:
$ echo "hello world" | mail -s "Test" simply@coding.com
答案 0 :(得分:0)
我不确定你在这里尝试做什么。据我所知,pgpass
不会包含您的凭据,除非您自己将它们放在那里。这听起来像是命令这样做。
<<-
不是评论。它代表了一个&#39; Here文档&#39;请参阅:https://en.wikipedia.org/wiki/Here_document#Unix-Shells
关于<<-ATOMIC
,请参阅上述链接。 \x
告诉psql格式化SELECT
OUTPUT = `psql -U username -h host -d dbname tablename -c $PSQL_CMD'
echo $OUTPUT | mail -s "Test" simply@coding.com