bash—在shell脚本中执行hbase命令时获取返回代码

mgdq6dx1  于 2021-06-09  发布在  Hbase
关注(0)|答案(1)|浏览(620)

如何检查是否存在 hbase 使用shell脚本的表:

if [HBASE COMMAND]
echo "table exist"
else
echo "create new table"
ehxuflar

ehxuflar1#

退出状态可以通过 $? ,请参阅开放组基本规范第7版中的2.5.2特殊参数:

printf "exists '%s'\n" mytable | hbase shell 2>&1 | grep -q "does exist" 2>/dev/null
if [ $? -eq 0 ] ; then
  printf "table exists\n"
else 
  printf "create new table\n"
fi

您可以使用 if 声明;请参阅开放组基本规范第7版中的if条件构造部分。如果退出状态为0(成功),则 then 块被执行。
试着用这个来检验 mytable :

if printf "exists '%s'\n" mytable | hbase shell 2>&1 | grep -q "does exist" 2>/dev/null ; then 
  printf "table exists\n"
else 
  printf "create new table\n"
fi
``` `grep -q` 不打印到标准输出,退出状态为 `0` (成功)如果 `regex` 匹配(如果字符串 `does exist` 在生成的输出中找到 `hbase` 命令)。 `hbase shell -n` 可用于执行shell脚本中的命令。
使用 `exists` 命令检查表是否存在。

相关问题