2016-06-15 9 views

Antwort

1

Exit-Status mit $? geprüft werden kann, 2.5.2 Special Parameters von The Open Group Basisspezifikationen sehen Ausgabe 7:

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 

Sie können direkt Verbindung-Liste der Befehle mit einer if Anweisung ausführen; siehe The if Conditional Construct Abschnitt von Die Open Group Base Spezifikationen Ausgabe 7. Wenn der Exit-Status 0 (Erfolg) ist, werden die Befehle ausgeführt, die in dem Block then enthalten sind.

einen Versuch, um das Geben die Existenz von mytable zu überprüfen:

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 druckt nichts auf die Standardausgabe und den Exit-Status ist 0 (Erfolg), wenn die regex matches (wenn die Zeichenfolge does exist gefunden in der Ausgabe von hbase Befehl generiert).

hbase shell -n kann verwendet werden, um Befehle von einem Shell-Skript auszuführen.

Verwenden Sie den Befehl exists, um das Vorhandensein einer Tabelle zu überprüfen.

+0

diesen Fehler bei der Verwendung dieser existiert „Loaderror: Datei zu laden - -n Last bei org/jruby/RubyKernel.java: 1087“ –

+0

oups, versuche das '-n' zu entfernen (die Antwort wurde aktualisiert). Ist es besser? –