我需要运行一个HQL文件并根据结果执行操作。 HQL文件创建一个表。以下是我从bash脚本调用脚本的方法。
if echo -e "hive -f $table_create_file -hiveconf database='$hive_db' -hiveconf table='$hive_table_name' -hiveconf query='$hive_query'"
then
echo "success"
else
echo "error message"
exit 100
fi
但即使HQL文件中的create table命令失败,这也会返回成功。我相信这是因为我没有进入蜂巢终端。我该如何处理这种情况?任何帮助将不胜感激。
答案 0 :(得分:1)
如果hive
命令返回成功/失败返回代码,具体取决于执行的状态,您可以直接在if-clause
中使用它作为
if hive -hiveconf database="$hive_db" -hiveconf table="$hive_table_name" -hiveconf query="$hive_query" -f "$table_create_file"
then
echo "success"
else
echo "error message"
exit 100
fi
我已经对shell
的所有变量进行了双引号,以便在执行时展开它。