我在调用层次结构的shell脚本中运行一个jar文件。我想将执行jar文件的输出重定向到我的日志文件“loga.log”,但这只有在我使用“sh”命令运行此脚本时才有效。
我的调用层次结构基本上是这样的:
脚本A使用以下内容调用脚本B:
/path/to/script/scriptb.sh &> /path/to/logs/loga.log
脚本B调用脚本C:
/path/to/script/scriptc.sh > /path/to/logs/logb.log
脚本C执行jar文件:
java -Xms512m -Xmx1280m -Djava.awt.headless=true -jar /path/to/jar/thejar.jar > /path/to/logs/stdout.log #2>/path/to/logs/stderr.log
第一个脚本由命令行启动:
sh /path/to/scripts/scripta.sh
然后我根据需要将输出写入loga.log文件。当我通过以下方式启动脚本时:
/path/to/scripts/scripta.sh
这不起作用,输出显示在控制台中。不幸的是我无法使用sh命令,因为这些脚本必须由UC4作业系统触发,该系统在不使用sh的情况下调用此脚本。在第一个脚本中使用“sh”调用第二个脚本不起作用。
如何编辑脚本,以便在通过上述命令(不带sh)运行第一个时,能够将所有输出记录到指定的日志文件中?
提前致谢, 马丁