3

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

log "LEVEL" $message

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

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

是不是有什么问题?

TIA

4

4 回答 4

3

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

于 2012-06-09T11:05:55.933 回答
1

目前尚不完全清楚您的问题与日志记录有关(看起来您的问题是捕获要记录的文本,格伦杰克曼已经巧妙地提出了解决方案),但以防万一,您可能希望了解logger找到的命令在大多数 Unix 系统上——它为 shell 脚本提供了编写系统日志的能力。它有不同的级别和优先级以及一切。非常便利。

于 2010-06-08T22:49:34.860 回答
1

也许你想要:

message=$( command 2>&1 )
log INFO "$message"
于 2010-06-08T18:05:57.687 回答
0

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

{ command; }
于 2010-06-08T19:03:02.367 回答