Aquí hay una guía básica.
Tengamos un ejemplo de script llamado admin.sh en el que le gustaría tener el autocompletado funcionando.
#!/bin/bash
while [ $# -gt 0 ]; do
arg=$1
case $arg in
option_1)
# do_option_1
;;
option_2)
# do_option_1
;;
shortlist)
echo option_1 option_2 shortlist
;;
*)
echo Wrong option
;;
esac
shift
done
Opción de nota lista corta. Al llamar al script con esta opción, se imprimirán todas las opciones posibles para este script.
Y aquí tienes el script de autocompletar:
_script()
{
_script_commands=$(/path/to/your/script.sh shortlist)
local cur prev
COMPREPLY=()
cur="${COMP_WORDS[COMP_CWORD]}"
COMPREPLY=( $(compgen -W "${_script_commands}" -- ${cur}) )
return 0
}
complete -o nospace -F _script ./admin.sh
Tenga en cuenta que el último argumento para completar es el nombre del script al que desea agregar autocompletado. Todo lo que necesita hacer es agregar su secuencia de comandos de autocompletar a bashrc como
source /path/to/your/autocomplete.sh
o cópielo a /etc/bash.completion.d
Fuente: /ubuntu//a/483149/24155