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

问题描述

| 我了解我可以使用$?查看最后执行的命令的退出代码,但是如果我想确定是否抛出了自己的“退出0”或“退出1”怎么办? 例如:
#!/bin/bash -e    
trap \"{ echo Exit code $?; exit; }\" EXIT    
exit 1
如果运行此脚本,它将打印出\“ Exit code 0 \”(退出代码0 \),然后以退出代码1退出。我可以访问陷阱中的代码吗,还是我使用错误方法?换句话说,我希望这个简单的脚本可以打印出“退出代码1”。     

解决方法

        之所以为0,是因为脚本开头的“ 1”(由于双引号而被替换)为0。 尝试以下方法:
trap \'{ echo Exit code $?; exit; }\' EXIT
    ,        任何终止的进程都将设置为ѭ1,这意味着它会不断被覆盖。将“ 1”保存到一个单独命名的var中,该var是唯一的,并在退出时回显该变量。 编辑 请参阅基于进程退出代码的退出Shell脚本