我有一个Bash脚本,它将今天的日期作为命令行参数,计算前一天并创建一个配置单元查询以在hdfs上的某个位置创建表。我似乎无法正确连接字符串。
#!/usr/bin/env bash
echo $1
onedaybehind=`date -d "$1 - 1 days" +%Y-%m-%d`
echo $onedaybehind
hivequery="CREATE TABLE abc(id bigint, name string )
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
LOCATION 'hdfs://nameservice1/data/abc/"
echo $hivequery
st = $hivequery$onedaybehind
echo $st
onedaybehind和hivequery的变量都被正确打印,但它无法识别变量st。我也尝试过使用引号和括号。
理想情况下我想生成字符串:
CREATE TABLE abc( id bigint, name string)
ROW FORMAT DELIMITED FIELDS TERMINATED BY '\t' LINES TERMINATED BY '\n'
LOCATION 'hdfs://nameservice1/data/abc/2015-11-15;'"
(最后用分号和单引号)。我运行这个程序:sh test.sh 2015 = 11-16。
请帮助,不确定它的字符串的播放日期是否有问题,但我无法正确连接。