我用不同的方法填充了两个变量,我想比较它们的值。如果您注意到下面的回音,两个变量值是相同的,但是字符串比较显示“不匹配”。有什么问题吗?
代码:
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_
不匹配
2条答案
按热度按时间yvt65v4c1#
您可以在比较中尝试“==”。我还要在if语句的末尾加上fi。
%>源测试.sh
pxyaymoc2#
imapalashell似乎在行中放入了某种控制字符,因此另一种方法是将结果输出到一个文件中,然后读取它。请参见此链接:https://groups.google.com/a/cloudera.org/forum/#!主题/impala用户/\u psqtqppke0