bash - 您可以访问陷阱中退出命令的代码吗?

标签 bash

我知道我可以使用 $?查看最后执行的命令的退出代码,但是如果我想确定我是否抛出了自己的“exit 0”或“exit 1”怎么办?

例如:

#!/bin/bash -e    
trap "{ echo Exit code $?; exit; }" EXIT    
exit 1

如果我运行此脚本,它会打印出“退出代码 0”,然后以退出代码 1 退出。我可以访问陷阱中的代码,还是我只是以错误的方式处理此问题?换句话说,我希望这个简单的脚本打印出“退出代码 1”。

最佳答案

它是 0,因为脚本开头的 $? 是 0,由于双引号而被替换。

试试这个:

trap '{ echo Exit code $?; exit; }' EXIT

关于bash - 您可以访问陷阱中退出命令的代码吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6176834/

相关文章:

Bash - 在变量中保存 $@ 时是空间安全的

bash - 防止 bash 打印 “<PID> Aborted” 消息

bash - 尝试使 rsync 命令更简单时出错

Bash rm 命令在循环内部不起作用

Bash 与减法的比较

string - 如何在 bash 中提取字符串的最后一部分?

linux - Signals Delivered Field of time 命令似乎不起作用

bash - 比较awk中的连续行和多列并随机选择重复行之一

python - 使用 bash 或 python 或其他一些 linux 命令行工具创建一个 dovecot SHA1 摘要

linux - 在另一个比较中使用 bash 比较的结果