¿Hay alguna manera de que bash sepa exactamente qué mostrar cuando hace doble tabulación? Por ejemplo, tengo un script de python scpy
lo que requiere un par de argumentos. Por ejemplo, como apt-get
, si haces doble tabulación te da
autoclean build-dep clean dselect-upgrade purge source upgrade autoremove check dist-upgrade install remove update
¿Hay alguna manera de hacer eso para sus propios scripts/programas? ¿Necesito envolver mi secuencia de comandos de python en una secuencia de comandos de bash?
Respuesta aceptada:
La forma más sencilla de hacerlo es incluir un script de shell en /etc/bash_completion.d/
. La estructura básica de este archivo es una función simple que realiza la finalización y luego la invocación de complete
que es un bash incorporado. En lugar de entrar en detalles sobre cómo usar complete
, le sugiero que lea Una introducción a la finalización de Bash. La Parte 1 cubre los conceptos básicos y la Parte 2 explica cómo escribir un guión de finalización.
Se puede encontrar una descripción más densa de la finalización de bash en la sección "Finalización programable" de man bash
(Puede escribir "/Finalización programable" y luego presionar 'n' varias veces para llegar allí rápidamente. O, si tiene suerte, "g 2140 RETURN").