Linux 指定在前一个命令失败时要运行的命令的方法
是否可以从CLI捕获错误(Linux 指定在前一个命令失败时要运行的命令的方法,linux,bash,terminal,gnome-terminal,Linux,Bash,Terminal,Gnome Terminal,是否可以从CLI捕获错误(未知命令),并在发生错误时采取措施 更确切地说,我在寻找一种方法来做这样的事情: 如果[previousCommandFails];然后 echo lastCommand>>某处.txt fi Echo只是一个例子,说明我需要访问这个last命令 我希望这是我的计算机中的默认行为,因此代码必须放在类似~/.bashrc的位置,这取决于您所称的失败。如果它只是返回一个非0值,恐怕您必须在每个命令后对其进行明确的测试,或者使用专门的shell(*) 但是trap可用于在接
未知命令
),并在发生错误时采取措施
更确切地说,我在寻找一种方法来做这样的事情:
如果[previousCommandFails];然后
echo lastCommand>>某处.txt
fi
Echo只是一个例子,说明我需要访问这个last命令
我希望这是我的计算机中的默认行为,因此代码必须放在类似
~/.bashrc
的位置,这取决于您所称的失败。如果它只是返回一个非0值,恐怕您必须在每个命令后对其进行明确的测试,或者使用专门的shell(*)
但是trap
可用于在接收到信号时执行特定命令:
trap action signal
如果这还不够,您必须获取shell的源代码(posix shell或bash),并对其进行调整以满足您的需要…您可以尝试以下解决方案。我不能保证这是一个好的解决方案,但它可能会帮助你的情况 创建一个小脚本,用于测试上一个命令,即
test.sh
,内容如下:
if[$?-ne 0]
然后
历史记录1>>/path/to/failed_commands.txt
fi
然后设置此变量:
PROMPT\u命令+=“source/path/to/test.sh”
PROMPT_命令如果设置,该值将作为命令在
发出每个主提示
我应该看看
陷阱
,谢谢!我希望它能更准确地捕获未知命令
。在将该命令与命令-v
一起使用之前,您应该检查该命令是否存在。可能的副本等。