GNU/Linux >> Tutoriales Linux >  >> Linux

¿Cómo especificar un autocompletado personalizado para comandos específicos?

¿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").


Linux
  1. ¿Cómo ejecutar comandos bash de Linux en un script PERL?

  2. ¿Autocompletar Zsh dinámico para comandos personalizados?

  3. ¿Cómo cambiar Cron Shell (sh a Bash)?

  4. Cómo deshabilitar un comando específico para un usuario específico en Linux

  5. En Linux, ¿cómo obtengo páginas man para funciones C en lugar de comandos bash?

Tutorial de scripts de Bash para principiantes:qué es, cómo escribir uno y ejemplos de scripts

Cómo usar comandos personalizados en LibreOffice

Cómo ejecutar un comando durante un tiempo específico en Linux

Cómo corregir fácilmente los comandos Bash mal escritos en Linux

Cómo configurar Sudo sin contraseña para un usuario específico

Cómo agotar el tiempo de espera de un grupo de comandos en Bash