tro*_*nda 6 shell bash error-handling
我有一个辅助功能:
function error_exit
{
/opt/aws/bin/cfn-signal ...
exit 1
}
Run Code Online (Sandbox Code Playgroud)
此辅助函数用于发出错误信号。下面是一个使用示例:
/opt/aws/bin/cfn-init -s .. || error_exit 'Failed to run cfn-init'
Run Code Online (Sandbox Code Playgroud)
该cfn-init
命令采用了许多与问题无关的参数。当命令向错误输出返回非空值和可能的错误消息时,我想获取错误消息并将其error_exit
作为参数包含在方法中。这可能吗?如果没有,您将如何在 bash 中实现一个帮助方法来获取源错误消息?
您可以将错误输出重定向到一个文件,然后检索该输出:
trap "rm -f /tmp/cfn-error.txt" 0 1 2 3 15
/opt/aws/bin/cfn-init -s ... 2>/tmp/cfn-error.txt ||
error_exit $(</tmp/cfn-error.txt)
Run Code Online (Sandbox Code Playgroud)
你应该总是清理你的烂摊子,所以不要忘记删除你创建的任何临时文件。