
¿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 Update
yUpgrade
Respuesta3
Asegúrese de tener el bash-completion
paquete instalado. Dependiendo de su tipo de instalación, puede que esté incluido o no de forma predeterminada, si no, simplemente consígalo con yum
o apt
. Después de la instalación, deberá cerrar sesión y volver a iniciarla o volver .bashrc
a 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.