我正在尝试根据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中触发邮件?
答案 0 :(得分:0)
你是不是要比较你的java程序的输出,在它崩溃的情况下,很可能是某种字符串,对(-gt大于)一个整数?比较器需要一个整数,而不是来自java的崩溃消息。
编辑:不好看,也许最好先测试$ out是否为整数,如果你的jar只在正确运行时输出整数:
if ! [[ "$out" =~ ^[0-9]+$ ]]
然后使用它来触发你的邮件,而不是正常的功能。