shell脚本错误:[::整数表达式预期

时间:2017-05-18 09:52:51

标签: java shell

我正在尝试根据java脚本输出触发电子邮件警报,但我在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程序的输出并在shell中触发邮件?

1 个答案:

答案 0 :(得分:0)

你是不是要比较你的java程序的输出,在它崩溃的情况下,很可能是某种字符串,对(-gt大于)一个整数?比较器需要一个整数,而不是来自java的崩溃消息。

编辑:不好看,也许最好先测试$ out是否为整数,如果你的jar只在正确运行时输出整数:

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

然后使用它来触发你的邮件,而不是正常的功能。