我有这样的文件格式(publishfile.txt)
drwxrwx---+ h655201 supergroup 0 2019-04-24 09:16 /data/xyz/invisible/se/raw_data/OMEGA
drwxrwx---+ h655201 supergroup 0 2019-04-24 09:16 /data/xyz/invisible/se/raw_data/sample
drwxrwx---+ h655201 supergroup 0 2019-04-24 09:16 /data/xyz/invisible/se/raw_data/sample(1)
并希望将filename的值存储在一个类似omega,sample,sample(1)的表中。为此,我使用了这样的代码
FILE_NAME=$(echo "$line"| awk -F / '{ print $NF }' "$BASE_PATH/publishfile.txt")
echo FILE_NAME
这里文件名的输出是这样的------> OMEGA sample sample(1)
但是当我把它传递给--hivevar时,它只接受sample(1)值,就像我的代码一样
beeline -u $HIVEPATH --hivevar namenode=$NAMENODE --hivevar db=$DB_MASTER$COUNTRY$DB_POSTFIX --hivevar dirlocation --hivevar filename= $FILE_NAME --hivevar queue=$QUEUE_NAME--showHeader=false --showWarnings=true $BASE_PATH/TOM/SCRIPT/hql/insert_data.hql
但这里filename只存储插入表中的sample(1),我如何确保variable的整个值进入filename并存储呢 OMEGA sample sample(1)
它的价值
1条答案
按热度按时间lmvvr0a81#
shell中的双引号变量:
在这种情况下,包含空格的字符串将作为单个变量传递。
或者你可以这样传递:
--hivevar filename=${FILE_NAME}
也是你的echo
命令应该是echo "$FILE_NAME"
不是echo FILE_NAME
变量传递演示:印刷品:
传给Hive:
在配置单元中打印: