是否可以捕获 "command not found" 事件?

Is it possible to catch the "command not found" event?

我正在使用 bash,想知道是否可以捕获“-bash: gitb: command not found”事件以用你自己的处理程序替换它。

例如,如果我 运行

gitb clone 而不是 git clone,它会自动更正。

如果我能捕捉到 command not found 事件,检查命令是否以 git 开头并且第一个单词长度为 4 个字符(或者我可能会在bash 脚本)。

它还可以自动为其他命令创建别名,而无需手动创建(或使用循环)。

它们在 bash(我使用的是 4.1 版)中有这样的功能吗? 任何其他想法表示赞赏!

当找不到命令时,bash 将执行函数 command_not_found_handle(如果已定义)。例如:

command_not_found_handle () {
    cmd=
    shift
    if [[ ${#cmd} -gt 3 && $cmd = git* ]]; then
        git "$@"
    else
        return 127
    fi
}