gpt4 book ai didi

bash - bash脚本,将stderr定向到文件,将stdout + stderr定向到终端,并返回退出代码

转载 作者:行者123 更新时间:2023-12-03 07:47:54 28 4
gpt4 key购买 nike

这是我对System.exit return code isn't detected by bash eval的预期的更好措辞。我需要一个bash脚本

  • 运行一个应用程序(在我的情况下是一个Java应用程序)
  • 将stderr定向到文件
  • 将stderr + stdout定向到终端
  • 返回应用程序
  • 的退出代码

    由于某种原因,这很难做到,尽管在我看来,这就像企业应用程序的标准配置...
    谢谢!

    [编辑]

    通过包装此脚本来测试解决方案:
    #!/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/

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