Bash变量赋值不起作用

时间:2015-11-16 17:31:10

标签: string bash date concatenation

我有一个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。

请帮助,不确定它的字符串的播放日期是否有问题,但我无法正确连接。

0 个答案:

没有答案