gpt4 book ai didi

linux - 从 bash 脚本变量回显 stderr 和 stdout 到文件

转载 作者:塔克拉玛干 更新时间:2023-11-02 23:55:03 25 4
gpt4 key购买 nike

我有一个 bash 脚本,在这个 bash 脚本中我有一个像这样的 JAVARESULT 变量:

JAVARESULT=`java -cp ... parser_file $file $someextravar`

我想要的是在日志文件中捕获此结果变量的标准错误和标准输出。

echo "$JAVARESULT" > $LOG_FILE

但我只得到 stdout 而不是 stderr。我试过:

echo "$JAVARESULT" &> $LOG_FILE

但我没有在日志文件中得到 java 错误。

最佳答案

在每个基于 Unix 的系统中,每个进程至少打开三个文件描述符。如您所知,文件描述符由数字标识。这三个标准文件描述符是:

  • 0 用于stdin
  • 1 用于stdout
  • 2 表示 stderr

您要做的是将stderr 重定向到stdout,然后将stdout 重定向到一个文件。因此,在您的 JAVARESULT 变量中,您只需添加:

2>&1

你在这里说的是:将 stderr(文件描述符 2)重定向到 stdout(文件描述符 1)。

关于linux - 从 bash 脚本变量回显 stderr 和 stdout 到文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21042455/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com