我打算在sh脚本中进入hive shell(如下所示)并执行一些HQL请求。
$ hive
Hive history file=/tmp/admin/hive_job_log_admin_201309110939_570764_8012_1eecdf83_1dd4da6d.txt
hive>然后我得到了一个脚本,它可以按照我想要的方式工作。sh脚本的代码片段如下:
#!/bin/bash
#HQL
/home/hive/hive/bin/hive -u root -p root <<EOF
show tables;
EOF但是我不知道<<EOF和最后一个EOF到底是什么意思。有人能给我一个具体的解释吗?非常感谢!
发布于 2013-09-11 09:46:48
这被称为"here document“(也是here-document,here here,here is,here-string或here-script)语法。
<<EOF
show tables;
EOF生成文本:
show tables;有关详细信息,请参阅heredoc的tag wiki。
发布于 2013-09-11 10:06:52
EOF只是一个常见的文件描述符,它可以是任何东西,而不仅仅是EOF,它可以是MyEOF等。如果您将其声明为MyEOF,那么它将使用字符串MyEOF作为标准输入,您可以将$MyEOF指定为变量,以后可以将其内容用作标准输入。如Johnsyweb所提到的,这被称为short字符串,因为它使用与整个块形成对比的短串,如heredoc中。
https://stackoverflow.com/questions/18731424
复制相似问题