首页 > 代码库 > fastboot命令的自动补全

fastboot命令的自动补全

在Ubuntu13.10以及之后的Ubuntu 14.04上,通过APT安装fastboot以及adb工具之后,

发现fastboot的自动补全有问题了, fastboot flash 之后的自动补全有问题了, 特别是mbn以及bin类型的文件根本无法补全.


查了一下,发现是fastboot的自动补全脚本限制了补全规则,稍微修改一下就能解决这个问题.

文件路径: /etc/bash_completion.d/fastboot


修改其中的内容如下:

_fastboot()  
{
    local cur prev opts
    COMPREPLY=()
    cur="${COMP_WORDS[COMP_CWORD]}"
    prev="${COMP_WORDS[COMP_CWORD-1]}"
    opts="reboot boot flash devices -w reboot-bootloader"

    case "$prev" in
    reboot | devices | -w | reboot-bootloader)
        COMPREPLY=()
        return 0
        ;;
    flash)
        COMPREPLY=( $(compgen -W "boot system recovery radio rpm sbl1 modem tz persist splash aboot" -- $cur ))
        return 0
        ;;
    boot)
        COMPREPLY=( $(compgen -o filenames -G "${cur}*.img"))
        return 0
        ;;
    *)
        local prev2="${COMP_WORDS[COMP_CWORD-2]}"
        local prev3="${COMP_WORDS[COMP_CWORD-3]}"
        if [ "$prev2" == "flash" ];then
            COMPREPLY=( $(compgen -o filenames -G "${cur}*"))
            return 0
        elif [ "$prev2" == "boot" ];then
            COMPREPLY=()
            return 0
        elif [ "$prev3" == "flash" ];then
            COMPREPLY=()
            return 0
        fi
        ;;
    esac

    COMPREPLY=( $(compgen -W "$opts" -- $cur) )
    return 0
}
complete -F _fastboot fastboot

注销后重新登录系统, 再试试fastboot flash命令, 你会发现比以前更好用了.


fastboot命令的自动补全