获取在shell脚本中执行hbase命令的返回码

时间:2016-06-15 21:53:54

标签: bash unix hbase

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

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

1 个答案:

答案 0 :(得分:1)

可以使用$?检查退出状态,请参阅打开群组基本规范第7期<{3}}

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语句直接执行复合命令列表;请参阅 The Open Group Base Specifications Issue 7 中的2.5.2 Special Parameters部分。如果退出状态为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命令检查表的存在。