¿Qué son esos comandos de subrayado?


10

Cuando estoy tab tab _en la terminal, Bash sugiere 206 posibilidades. Traté de ejecutar uno de ellos _git_rmpero no pasó nada, ¿qué son?

Aquí hay una captura de pantalla:

ingrese la descripción de la imagen aquí


11
type _git_rmprobablemente te dirá que es una función. grep -R '_git_rm' /etc/bash_completion.d/Probablemente lo encuentre. Esas funciones suelen ser las que proporcionan las diversas listas de bashfinalización para completar.
manatwork

@manatwork, publíquelo como respuesta.
derobert

@derobert, solo pretendía proporcionar una pista rápida para que el propietario de la pregunta obtenga algo antes de que la respuesta experta se publique ~ 7 horas más tarde.
manatwork

@manatwork La respuesta es suficiente para mí ... Puedo explorar más por mí mismo: D Si no le importa, voy a aceptar anwser de Gilles aunque creo que debería aceptar la suya ..
dibujar

@draw, la respuesta de Gilles probablemente se basa en la investigación y la experiencia, mientras que la mía se basa en observaciones accidentales realizadas durante el rastreo de directorios. Por favor acepte el suyo.
manatwork

Respuestas:


12

Estas funciones cuyo nombre comienza con un guión bajo forman parte del motor de finalización programable. Bash sigue la convención de zsh aquí, donde somecommandse llama a la función que genera terminaciones para _somecommand, y si esa función requiere funciones auxiliares, se llaman _somecommand_stuff.

Estas funciones de finalización generalmente no hacen nada útil o generan un error si las llama manualmente: están destinadas a ser llamadas desde el motor de finalización.

Esto sigue una práctica bastante extendida en varios lenguajes de programación para usar un guión bajo principal para indicar que una función o variable es de alguna manera interna a una biblioteca y no está destinada al usuario final (o programador final).

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.