Tengo mi utilidad de consola personalizada cooltool
con una lista de opciones
fooOption
barOption
¿Qué debo hacer para bash autocompletar las opciones presionando la tab
tecla?
Me refiero a que el usuario escribió
$ ./cooltool foo_
luego presionado tab
. Y entonces
$ ./cooltool fooOption _
apareció.
Respuestas:
Escriba un script de finalización de bash para
cooltool
. El paquete bash-complete viene con scripts para muchos programas populares, que puede usar como ejemplos.fuente
La forma más simple es agregar lo siguiente a su .bashrc.
Cada vez que escribe
cooltool f[TAB][TAB]
,_cooltool()
se invoca la función. Resolverá cuál es su palabra parcial actual y luegocompgen
determinará qué opciones coinciden. Estos se almacenan en una matriz llamadaCOMPREPLY
que luego se muestra. Miraman complete
yman compgen
para más detalles.Para un buen tutorial, consulte: Escribir su propia función de finalización de Bash
fuente
Es posible que desee echar un vistazo más de cerca dentro de su directorio /etc/bash_completion.d en su sistema.
También deberías leer esta introducción . La segunda parte de la introducción es la que necesita.
fuente
Aquí está el código que se usa para completar git bash
fuente
Además de la respuesta de dogbane, también puedes hacer:
si simplemente desea hacer coincidir una lista de palabras desde el comienzo de la cadena. Parece que completo y compgen comparten la mayoría de las opciones. Solo he notado la coincidencia del "comienzo de la cadena" en los comandos que uso, por lo que me pareció ordenado que pueda hacer otras cosas en la función _cooltool como:
para que coincida en cualquier lugar del nombre de la opción.
fuente