linux – 可能/如何获取最后一个命令之前执行的命令的返回码?

Linux bash(或其他shell.)你有没有胖指“echo $?”进入类似“echo $4”的东西,从而永久阻止你知道前一个命令的返回码?我经常这样做(而且这很烦人),所以我想我会问:bash和/或linux是否有“返回代码堆栈”或数组或者保存以前命令的返回码的东西,而不仅仅是最后一个命令你跑了吗?我在谈论不涉及管道的简单命令.

解决方法

如果要查看交互式bash的返回码,可以使用PROMPT_COMMAND变量,如下所示:
PROMPT_COMMAND='RC=$?; 
    if [ $RC -ge 128 ]; then
        SIG=$[RC-128];
        echo -e "Signal $SIG = $(kill -l $SIG)";
    fi;
    if [ $RC -ne 0 ]; 
        then echo -n "! (RC=$RC)  "; 
    fi'

每个命令后都会执行此变量中的命令.它应该只包含bash内部命令.在我的例子中它显示$?如果它不是0,则信号如果前一个命令被信号杀死.

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...