如何自定义bash自动完成功能以仅针对一个脚本选项(-seq)列出另一个目录中的文件,对于其他脚本选项(-speed,-define),默认自动完成功能就可以了,这就是我所拥有的
export files=`ls /home/tests/`
echo $files #debug
_xtest () {
local cur
COMPREPLY=()
cur=${COMP_WORDS[COMP_CWORD]}
#case "$cur" in
COMPREPLY=( $(compgen -W "${files}" -- ${cur}) )
# esac
return 0
}
complete -F _xtest -o filenames xtest
如何为其他选项启用默认bash完成?
应该使用prev而不是cur:
_xtest () {
local prev
COMPREPLY=()
prev=${COMP_WORDS[COMP_CWORD-1]}
case "$prev" in
-seq )
COMPREPLY=( $(compgen -W "${files}" -- ${cur}) ) ;;
esac
return 0
}
complete -F _xtest -o filenames xtest
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句