2017-05-18 4 views
0

Ich versuche, eine E-Mail-Benachrichtigung auf der Basis der Java-Skript-Ausgabe auslösen, aber ich bin erhalte eine Fehlermeldung wie in dem unten stehenden Shell-Skript,Shell-Script-Fehler: [: Integer-Ausdruck erwartet

script.sh: line 22: [: : integer expression expected 

Below is my shell script format, 

out="$(java -jar /waitrose/scripts/OF/BOBIErrorAutomation/BOBIAutomation.jar 
2>&1)" 
if [ "$out" -gt 0 ] 
then 
mail -s "script did not completed successfully" $mailid_list 
exit 0 
fi 

Unterhalb dem ist Stichprobenfehler durch das Java-Programm zurückgegeben:

The error was: com.ibm.db2.jcc.c.a.<init>(a.java:174) 174 
com.ibm.db2.jcc.c.b.a(b.java:1745) 1745 
com.ibm.db2.jcc.b.p.<init>(p.java:934) 934 

Kann mir jemand sagen, wie die Ausgabe von dem Java-Programm zu erfassen und die E-Mail in der Schale auslösen?

Antwort

0

vergleichen Sie nicht die Ausgabe Ihres Java-Programms, die in dem Fall, in dem es abstürzt, höchstwahrscheinlich eine Zeichenkette irgendeiner Art gegen (-gt größer als) eine ganze Zahl ist? Der Komparator erwartet eine ganze Zahl, keine Absturzmeldung von Java.

EDIT: ill aufwendig, vielleicht wäre es besser, eine ganze Zahl zu testen, ob $ out erstes ist, nur, wenn Ihr Glas ganze Zahlen gibt, wenn es richtig läuft:

if ! [[ "$out" =~ ^[0-9]+$ ]] 

diese dann verwendet Ihre E-Mail auslösen, und sonst zur normalen Funktionalität.

+0

Bitte warten Sie, bis Sie genügend Reputation erhalten, um zu kommentieren. Antworten sollen die Frage beantworten, nicht um Klärung bitten. –

+0

nun, liege ich falsch? ich dachte ich hätte. – Nalaurien