传递参数在shell

时间:2017-12-11 10:46:22

标签: hive

我写了下面的shell脚本。 这不起作用。

无法识别参数YRMTH_1

  

失败:ParseException行1:89无法识别谓词'as'。   失败的规则:表或列标识符中的“标识符”

YRMTH=$(hive -e "select cast(concat(substr(cast(add_months(current_date, -1) as string),1,4),substr(cast(add_months(current_date, -1) as string),6,2)) as int);")

echo $YRMTH

YRMTH_1=$YRMTH

hive -e "SELECT cust_name as cust_name_${hiveconf:YRMTH_1} from xmb_db.customer where ym=CAST(${hiveconf:YRMTH_1} as INT);" | sed 's/[\t]/,/g' >/tmp/data.csv 

请帮帮我。

提前致谢。

1 个答案:

答案 0 :(得分:0)

如果您使用-e" script&#34 ;, shell将替换所有$变量。

因此,解决方案是直接使用shell变量而不使用hiveconf:

{{1}}