当进程抛出 stderr 消息时运行脚本

当进程抛出 stderr 消息时运行脚本

我想将一个进程“包装”在另一个进程周围以stderr在消息发生时捕获消息。

使用案例

我在用着罗盘我必须打开一个终端,看看是否有问题。我的计划是使用终端通知程序向自己发送 OSX 通知的工具,以便我注意到发生了错误。这样我就不必一直在屏幕上保持终端打开。

想象一下,我在一个名为的 shell 脚本下拥有所有这些通知机制compass-error.sh,当您调用它时,该脚本会发送通知。现在我想运行compass watch我的主进程并观察stderr是否触发compass-error.sh。我该怎么做?

答案1

output="$(./compass 2>&1 1>/dev/null)"
if [ -n "$output" ]; then
  echo "$output" | mail ...
fi

相关内容