我需要运行一个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命令失败,这也会返回成功。我相信这是因为我没有在配置单元终端。我该如何处理这种情况?任何帮助将非常感激。
最佳答案
如果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
的所有变量都加了双引号,以在执行时对其进行扩展。