shell 脚本错误日志记录

发布于 2024-09-04 23:35:28 字数 298 浏览 13 评论 0原文

我正在尝试在我的 shell 脚本中设置一个简单的日志框架。为此,我想定义一个可调用的“日志”函数,其中

log "LEVEL" $message

消息是一个变量,我之前已将执行命令的输出重定向到该变量。我的问题是,我收到以下错误:

{message=command 2>&3 1>&3 3>&-} >&3
log "INFO" $message

有问题,不是吗?

TIA

I'm trying to setup a simple logging framework in my shell scripts. For this I'd like to define a "log" function callable as

log "LEVEL" $message

Where the message is a variable to which I have previously redirected the outputs of executed commands. My trouble is that I get errors with the following

{message=command 2>&3 1>&3 3>&-} >&3
log "INFO" $message

There's something wrong isn't there?

TIA

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

谁把谁当真 2024-09-11 23:35:28

我为我的 shell 脚本开发了一个简单的多级记录器,你可以看看使用、灵感或任何你想要的东西。

I've developed a simple multi-level logger for my shell scripts, you can take a look for use, inspiration, or whatever you want.

虚拟世界 2024-09-11 23:35:28

也许你想要:

message=$( command 2>&1 )
log INFO "$message"

Perhaps you want:

message=$( command 2>&1 )
log INFO "$message"
謌踐踏愛綪 2024-09-11 23:35:28

尚不完全清楚您的问题与日志记录有关(看起来您的麻烦在于捕获要记录的文本,glenn jackman 已经巧妙地提出了解决方案),但为了以防万一,您可能希望了解logger 命令,它为 shell 脚本提供了写入系统日志的能力。它有不同的级别和优先级以及一切。非常方便。

It's not entirely clear that your problem is related to logging (it looks like your trouble is capturing the text to log, which glenn jackman has ably suggested a solution for), but just in case, you might wish to be aware of the logger command found on most Unix systems—it provides shell scripts the ability to write the system log. It has various levels and priorities and everything. Very handy.

春夜浅 2024-09-11 23:35:28

除了 $() 之外,您还需要在大括号中使用空格和分号(如果您甚至需要它们):

{ command; }

In addition to the $(), you need to use spaces and a semicolon with your curly braces (if you even need them):

{ command; }
~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文