在bash脚本中:如何向(人工)用户发出错误触发过早退出的信号?

在bash脚本中:如何向(人工)用户发出错误触发过早退出的信号?,bash,error-handling,Bash,Error Handling,在一个bash脚本中,如何向调用人工用户的bash脚本发出触发过早退出错误的信号,以及某种自定义消息 我想发送一条明确无误的失败信息,如 ! ** ! Oops, something went wrong. This script did NOT successfully finish. ! ** ! 以便用户理解脚本没有成功完成。有时,这一点并不清楚,用户错误地认为脚本已成功完成。您应该使用这一点,而不是set-e: 回答我的评论,下面是关于如何在退出脚本时保留错误返回代码的扩展: !/

在一个bash脚本中,如何向调用人工用户的bash脚本发出触发过早退出错误的信号,以及某种自定义消息

我想发送一条明确无误的失败信息,如

! ** !

Oops, something went wrong.
This script did NOT successfully finish.

! ** !

以便用户理解脚本没有成功完成。有时,这一点并不清楚,用户错误地认为脚本已成功完成。

您应该使用这一点,而不是set-e:


回答我的评论,下面是关于如何在退出脚本时保留错误返回代码的扩展:

!/usr/bin/env bash
陷阱'rc=$?;catExcellent。效果很好。谢谢吉尔斯。@ GeleSeSkunt看到我的答案只是一个逐字复制我的答案+一个“功能”没有问到OPI的OP认为这是一个关键的特点,即使它不是明确要求。我考虑通过命令失败的返回代码对于分层脚本调用来说是必不可少的。非常感谢Léa.可能更详细?基于陷阱的答案:
#!/usr/bin/env bash

trap 'cat<<EOF >&2
! ** !

Oops, something went wrong.
This script did NOT successfully finish.

! ** !
EOF
    exit 1' ERR

[...] # code