是否可以捕获"未找到命令"事件?

edi*_*999 0 bash command-line alias

我正在使用bash,并想知道是否有可能捕获"-bash:gitb:command not found"事件以将其替换为您自己的处理程序.

例如,如果我跑,我会喜欢

gitb clone而不是git clone,它会自动纠正.

如果我可以捕获command not found事件,检查命令是否git以及第一个单词是4个字符长(或者我可以在bash脚本中输入任何类型的规则).

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

它们是bash中的这种功能(我使用的是4.1版本)吗?任何其他想法赞赏!

che*_*ner 5

如果未找到命令,bash将执行该函数command_not_found_handle(如果已定义).举个例子:

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