我正在尝试在我的shell脚本中设置一个简单的日志框架。为此,我想定义一个可以调用为
的“日志”功能log "LEVEL" $message
消息是我之前重定向已执行命令输出的变量。我的麻烦是我得到以下
的错误{message=command 2>&3 1>&3 3>&-} >&3
log "INFO" $message
有什么不对吗?
TIA
答案 0 :(得分:3)
我为我的shell脚本开发了一个简单的multi-level logger,您可以查看使用,灵感或任何您想要的内容。
答案 1 :(得分:1)
也许你想要:
message=$( command 2>&1 )
log INFO "$message"
答案 2 :(得分:1)
你的问题与日志记录有关并不完全清楚(看起来你的问题是捕获要记录的文本,glenn jackman已经提出了解决方案),但为了以防万一,你可能希望了解在大多数Unix系统上找到的logger
命令 - 它为shell脚本提供了编写系统日志的能力。它有各种级别和优先级和一切。非常方便。
答案 3 :(得分:0)
除了$()
之外,您需要在花括号中使用空格和分号(如果您需要它们):
{ command; }