我需要运行一个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的所有变量都加了双引号,以在执行时对其进行扩展。

08-27 08:22