首页 > 解决方案 > 一种指定命令在前一个失败时运行的方法

问题描述

是否可以从 CLI 捕获错误(unknown command),并在发生错误的情况下执行某些操作?

更准确地说,我寻找一种方法来做这样的事情:

if [ previousCommandFails ] ; then
  echo lastCommand >> somewhere.txt
fi

Echo 只是一个例子,说明我需要访问这个 lastCommand。

我希望它成为我计算机中的默认行为,因此代码必须放在类似~/.bashrc.

标签: linuxbashterminalgnome-terminal

解决方案


您可以尝试以下解决方案。我不保证这是一个好的解决方案,但它可能对您的情况有所帮助。

创建一个可以测试上一个命令的小脚本,即test.sh包含内容:

if [ $? -ne 0 ] then history 1 >> /path/to/failed_commands.txt fi

然后设置这个变量:

PROMPT_COMMAND+="source /path/to/test.sh"

PROMPT_COMMAND 如果设置,则在发出每个主要提示之前将该值作为命令执行。


推荐阅读