每次命令失败后如何执行命令?

The*_*nka 5 linux bash logs zsh command

我试图记录每次命令失败的时间(通过向我的 VPS 发送 HTTP 请求),以查看我搞砸了多少次。

我试过了:some_command || curl <my-vps>。有没有更好的办法?

小智 7

您可以创建陷阱以进行错误处理。

例如:

trap 'echo "Error: $? occurred" >> log.txt' ERR

some_command
some_bad_command
some_command
Run Code Online (Sandbox Code Playgroud)

或者您可以在脚本中使用它,如下所示。

trap 'echo "Error: $? occurred" >> log.txt' ERR

some_command
some_bad_command
some_command
Run Code Online (Sandbox Code Playgroud)

作为您的用例的注释,我会做这样的事情:

trap 'curl <my-vps> --retry 0 --silent -o /dev/null &' ERR
Run Code Online (Sandbox Code Playgroud)

这将以静默方式执行任务,如果出现错误,则不会启动另一个卷曲。