2017-05-18 91 views
0

我試圖基於Java腳本輸出觸發電子郵件警報,但我在shell腳本得到一個錯誤,如下面,shell腳本錯誤:[:整數表達式預期

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 

下面是由Java程序返回抽樣誤差:

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 

誰能告訴我如何捕獲從Java程序的輸出,並觸發郵件的殼呢?

回答

0

是不是比較你的java程序的輸出,在它崩潰的情況下,最有可能是某種類型的字符串,(-gt大於)整數?比較器需要一個整數,而不是Java的崩潰消息。

編輯:生病的闡述,也許會有更好的測試,如果$出來是一個整數首先,如果你的罐子只輸出整數,如果它可以正常運行:

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

,然後用它來觸發您的郵件,還有正常的功能。

+0

請等到獲得足夠的知名度後再發表評論。答案是爲了回答這個問題,而不是要求澄清它。 –

+0

好吧,我錯了嗎?我以爲我做到了。 – Nalaurien