如何检查bash脚本中是否存在hbase表

kcrjzv8t  于 2021-06-10  发布在  Hbase
关注(0)|答案(1)|浏览(304)

我有这个bash脚本,需要从中检查hbase表是否存在,并相应地打印消息。下面是我试过的。

doesTableExist=$(echo -e "exists '$base_table_name' | hbase shell")

if [ $? -eq 0 ]
then
    echo [BYOA_HIVE_INGEST] [INFO] "Table already exists"
else
    echo [BYOA_HIVE_INGEST] [ERROR] "Table does not exist"
fi

下面是我如何运行脚本。

sh test.sh $base_table_name = test

但这表明表一直存在,不管它是否存在。我做错什么了?任何帮助都将不胜感激。

jjjwad0x

jjjwad0x1#

想法是对的,你将变量值传递给脚本的方式是错误的,应该是,

base_table_name="test" sh test.sh

设置一个或多个变量,然后运行命令的一般语法如下

FOO=bar somecommand someargs

如果您的返回码在所有情况下都不正确,您可以直接在命令输出上进行搜索,例如,

if echo -e "exists '$base_table_name'" | hbase shell 2>&1 | grep -q "does exist" 2>/dev/null 
then
    echo "[BYOA_HIVE_INGEST] [INFO] Table already exists"
else
    echo "[BYOA_HIVE_INGEST] [ERROR] Table does not exist"
fi

-q 旗和 stderr 重定向到 NULL ,如果找到字符串,则返回 grep 应该满足 if-clause .

相关问题