从 stderr 打印最后的错误消息?

从 stderr 打印最后的错误消息?

我有一个部署 Web 服务的脚本,我发现这个小帮手可以exitWithMessageOnError

exitWithMessageOnError () {
  if [ ! $? -eq 0 ]; then
    echo "An error has occurred during web site deployment."
    echo $1
    exit 1
  fi
}

grunt由于某种原因失败了,因此目前正在运行。

grunt --no-color --verbose clean build
exitWithMessageOnError "grunt failed"

不幸的是,我得到的只是An error has occurred during web site deployment.grunt failed。我想要做的是打印发生的错误,以便我可以修复它。

我尝试了一些方法>&2但无法让它工作。

答案1

如果程序单独写入,stderr您应该能够看到其错误输出,而无需该辅助函数。在您的帖子中,您的命令表明您没有使用任何重定向,因此您应该看到错误流。为了排除故障,您当然可以将stdout和重定向stderr 到两个单独的文件(或将两者都重定向到同一个文件&> file.txt),然后查看实际发生了什么

相关内容