~/.bashrc里面最后增加如下,bb.sh后接Tab会执行_bb_complete_func,提示入口参数

complete -F _bb_complete_func bb.sh

_bb_complete_func()
{
local cur prev opts
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
prev="${COMP_WORDS[COMP_CWORD-1]}"

case "${PWD##*/}" in
linux-xlnx )
opts="xilinx_zynq_defconfig mbxz15a_defconfig mbxz15a.dtb menuconfig clean mrproper --gcc-verison"
;;
u-boot-xlnx )
opts="zynq_zed_defconfig mbxz15a_defconfig menuconfig clean mrproper --gcc-verison"
;;
*)
return 0
;;
esac

if [[ ${cur} == * ]] ; then
COMPREPLY=( $(compgen -W "${opts}" -- ${cur}) )
return 0
fi
}

脚本判断当前目录是u-boot-xlnx还是linux-xlnx目录,否则没有任何提示,根据不同的目录提示不同的Tab补全方案,例如在u-boot-xlnxm目录下./bb.sh [Tab][Tab]效果如下:

注意:修改了~/.bashrc之后要退出终端,退出终端,重新打开终端才能生效,而不是切换用户哦
Logo

更多推荐