这是我对System.exit return code isn't detected by bash eval的预期的更好措辞。我需要一个bash脚本
由于某种原因,这很难做到,尽管在我看来,这就像企业应用程序的标准配置...
谢谢!
[编辑]
通过包装此脚本来测试解决方案:
#!/bin/sh
echo "This is Standard Out"
echo "This is Standard Error" >&2
cat meow
最佳答案
这将满足您的要求:
#!/bin/bash
errlog="/var/log/my_app"
exec 2> >(tee "$errlog")
java -jar /path/to/app.jar
exit $?
说明
exec 2 >
捕获STDERR(如果在右侧提供文件,则STDERR将在该文件中重定向,而在终端上将不再重定向)>( )
是bash process substitution(此操作在后台创建文件描述符)tee
可以在终端上同时显示STDERR并将STDERR保存到日志文件关于bash - bash脚本,将stderr定向到文件,将stdout + stderr定向到终端,并返回退出代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13657755/