是否有可能从CLI捕获错误(unknown command
),并在出现错误的情况下执行某些操作?
更确切地说,我搜索一种方法来做这样的事情:
if [ previousCommandFails ] ; then
echo lastCommand >> somewhere.txt
fi
Echo只是一个例子,说我需要访问这个lastCommand。
我希望它是我的计算机中的默认行为,因此代码必须放在像~/.bashrc
这样的地方。
您可以尝试以下解决方案。我不保证这是一个很好的解决方案,但它可能有助于你的情况。
创建一个小脚本,可以测试上一个命令,即test.sh
的内容:
if [ $? -ne 0 ]
then
history 1 >> /path/to/failed_commands.txt
fi
然后设置此变量:
PROMPT_COMMAND+="source /path/to/test.sh"
PROMPT_COMMAND如果设置,则在发出每个主要提示之前将该值作为命令执行。
这取决于你所说的失败。如果它只是返回非0值,我担心你必须在每个命令后明确地测试它,或者使用专门的shell(*)。
但是当接收到信号时,trap
可用于执行特定命令:
trap action signal
如果这还不够,你将不得不获得一个shell(posix shell或bash)的源代码并调整它以满足你的需求......