unix字符串比较

uemypmqf  于 2021-06-26  发布在  Impala
关注(0)|答案(2)|浏览(412)

我用不同的方法填充了两个变量,我想比较它们的值。如果您注意到下面的回音,两个变量值是相同的,但是字符串比较显示“不匹配”。有什么问题吗?
代码:

IMPALA_NODE=ipaddress.goes.here  
HIVE_DBNAME="dbname"  
HIVE_TABLENAME="tablename"  
CNT_FILE=$(wc -l < /tmp/filename.csv)  
CNT_EXTTABLE=`impala-shell -k -i $IMPALA_NODE -d $HIVE_DBNAME -q "select count(*)+1 from ${HIVE_TABLENAME};" --quiet -B -c`  
echo "_${CNT_FILE}_"  
echo "_${CNT_EXTTABLE}_"  
if [ "$CNT_EXTTABLE" = "20" ]; then  
echo "match"  
else  
echo "no match"  
fi

输出:
20_20_ 不匹配

yvt65v4c

yvt65v4c1#

您可以在比较中尝试“==”。我还要在if语句的末尾加上fi。

CNT_FILE=20
CNT_EXTTABLE=20

echo "_${CNT_FILE}_"
echo "_${CNT_EXTTABLE}_"

if [ "$CNT_FILE" == "$CNT_EXTTABLE" ]; then
   echo "match"
else
   echo "no match"
fi

%>源测试.sh

_20_
_20_
match
pxyaymoc

pxyaymoc2#

imapalashell似乎在行中放入了某种控制字符,因此另一种方法是将结果输出到一个文件中,然后读取它。请参见此链接:https://groups.google.com/a/cloudera.org/forum/#!主题/impala用户/\u psqtqppke0

相关问题