我有一个bash脚本,在这个bash脚本中,我有一个JAVARESULT变量,如下所示:
JAVARESULT=`java -cp ... parser_file $file $someextravar`
我想要的是在日志文件中捕获此结果变量的stderr和stdout。
echo "$JAVARESULT" > $LOG_FILE
但是我只得到标准输出而不是标准错误。我尝试了:
echo "$JAVARESULT" &> $LOG_FILE
但是我在日志文件中没有得到Java错误。
在每个基于Unix的系统中,每个进程至少打开三个文件描述符。如您所知,文件描述符由数字标识。这三个标准文件描述符是:
stdin
stdout
stderr
您要执行的操作是重定向stderr
到stdout
,然后重定向stdout
到文件。因此,您JAVARESULT
只需在变量中追加:
2>&1
您在这里说的是:将stderr
(文件描述符2)重定向到stdout
(文件描述符1)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句