¿Cómo puedo completar bash?

¿Cómo puedo completar bash?

¿Existe una buena manera de imprimir (por ejemplo, en la salida estándar) una lista de todas las posibles terminaciones de un comando en bash (las que me daría si escribiera el comando y luego presionara el tabulador)?

Editar: Supongo que esto no quedó muy claro ahora que lo leí de nuevo. Sé cómo completar manualmente. Quiero hacerlo programáticamente.

Respuesta1

bash no tiene una función para hacer exactamente eso. Las terminaciones programables dependen en gran medida de varios parámetros como la posición del cursor...

eval $(complete -p 'git' | sed s/^complete/compgen/)

parecepara funcionar, pero es muy frágil.

Respuesta2

Presione TABdos veces. La mayoría de los shells tipo BASH enumerarán todas las opciones de autocompletar coincidentes para una subcadena determinada.

p.ej

root@host$apt-get up

Al presionar TABdos veces este comando se enumerarán ambos UpdateyUpgrade

Respuesta3

Asegúrese de tener el bash-completionpaquete instalado. Dependiendo de su tipo de instalación, puede que esté incluido o no de forma predeterminada, si no, simplemente consígalo con yumo apt. Después de la instalación, deberá cerrar sesión y volver a iniciarla o volver .bashrca utilizarla.

@Amazed tiene razón en cuanto a cómo usarlo.

Respuesta4

Creo que lo que estás pidiendo es básicamente una lista de todos los comandos que comienzan con una cadena determinada. Debería poder hacerlo obteniendo una lista de todos los ejecutables en su sistema y ejecutándolos a través de grep.

información relacionada