是否有可能捕获未找到的"命令"事件?

时间:2015-08-20 15:07:33

标签: bash command-line alias

我正在使用bash,并想知道是否有可能捕获" -bash:gitb:命令未找到"用自己的处理程序替换它的事件。

例如,如果我跑

,我会喜欢

gitb clone代替git clone,它会自动更正。

如果我能抓住command not found事件,检查命令是否以git开头,第一个字是4个字符长(或者我可以在bash中输入任何类型的规则)脚本)。

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

它们在bash中是否具有此功能(我使用的是4.1版本)? 任何其他想法赞赏!

1 个答案:

答案 0 :(得分: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
}