gpt4 book ai didi

linux - hivevar 忽略空格后的值

转载 作者:行者123 更新时间:2023-12-03 09:51:34 26 4
gpt4 key购买 nike

我有这样的文件格式(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)

并希望将文件名的值存储在像 OMEGA,sample,sample(1) 这样的表中。为此,我使用了这样的代码
FILE_NAME=$(echo "$line"| awk -F / '{ print $NF }' "$BASE_PATH/publishfile.txt")
echo FILE_NAME

这里 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

但在这里 文件名 仅存储插入表中的样本(1) 如何确保变量的整个值进入 文件名 它存储 OMEGA sample sample(1)其中的值(value)

最佳答案

shell中的双引号变量:

--hivevar filename="$FILE_NAME"

在这种情况下,包含空格的字符串将作为单个变量传递。

或者,您可以像这样传递它: --hivevar filename=${FILE_NAME}
还有您的 echo命令应该是 echo "$FILE_NAME"不是 echo FILE_NAME
变量传递演示:
var="one two three";
echo "$var"

打印:
one two three

将其传递给 hive:
hive -hivevar var="$var"

在 hive 中打印:
hive> select '${hivevar:var}';
OK
one two three

关于linux - hivevar 忽略空格后的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60044563/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com