linux—配置单元脚本(hivequery.hql)文件中的这个表示法是什么意思${word:word}"

f0brbegy  于 2021-06-02  发布在  Hadoop
关注(0)|答案(2)|浏览(250)

脚本(hivequery.hql:)如下所示:

Use ${platformType:platformName};

select * from hivetablename;

这个脚本在bash脚本中被称为


# !/usr/bin/env bash

hive -f hivequery.hql
8yparm6h

8yparm6h1#

在hql文件中 use 命令设置默认数据库。请参见使用数据库。
这个 ${platformType:platformName} Hive的变量符号在哪里 platformType 是命名空间和 platformName 是变量名。语言手册的“使用变量”部分对此进行了解释。
如果你想知道一个特定变量的值,你可以使用 set 比如:

set platformType:platformName;

它会打印出值。你也可以跑步 set; 获取所有名称空间中已知变量的完整列表。

p1iqtdky

p1iqtdky2#

编写构造的更正确方法 ${word:word} 那就是写作 ${parameter:offset} . 它导致参数扩展,它扩展到从字符开始的参数值部分(从0开始计数),这是通过将偏移量扩展到参数的末尾确定的。它还有一个变种 ${parameter:offset:length } -扩展到参数值中从字符开始的部分(从0开始计数),该字符是通过将偏移量扩展为算术表达式确定的,由长度定义的算术表达式确定的字符数组成。
所以我认为在您的例子中,基本上是从platformtype获取数据库的名称。
有关这方面的更多详细信息,请查看bash手册页中的look for parameter expansion。

相关问题