그 밑줄 명령은 무엇입니까?


10

내가 tab tab _터미널에 있을 때 Bash는 206 개의 가능성을 제안합니다. 나는 그들 중 하나를 실행하려고 _git_rm했지만 아무 일도 일어나지 않았습니다. 무엇입니까?

스크린 샷은 다음과 같습니다.

여기에 이미지 설명을 입력하십시오


11
type _git_rm아마도 그것이 함수라고 말할 것입니다. grep -R '_git_rm' /etc/bash_completion.d/아마 그것을 찾을 것입니다. 이러한 기능은 일반적으로 다양한 완료 목록을 제공하는 기능 bash입니다.
manatwork

@manatwork는 답변으로 게시하십시오.
derobert

@derobert, 나는 단지 7 시간 후에 전문가 답변이 게시되기 전에 질문 소유자가 무언가를 얻도록 간단한 힌트를 제공하려고했습니다.
manatwork

나 자신에 의해 더 둘러 볼 수 있습니다 ... 대답은 나를 위해 충분하다 @manatwork : 당신이 괜찮다면 내가 당신을 수용해야한다고 생각하지만 D, 나는 질의 anwser을 받아 들일 겁니다 ..
그릴

@draw, Gilles의 답변은 아마도 연구와 경험에 근거한 것이지만, 광산은 디렉토리 크롤링 중에 우연히 관찰 된 것입니다. 그를 받아주십시오.
manatwork

답변:


12

이름이 밑줄로 시작하는 이러한 기능은 프로그래밍 가능 완료 엔진의 일부입니다. Bash는 zsh의 규칙에 따라 완료를 생성하는 함수 somecommand가 호출 _somecommand되고 해당 함수에 보조 함수가 필요한 경우 호출 _somecommand_stuff됩니다.

이러한 완성 함수는 일반적으로 수동으로 호출하면 유용하지 않거나 오류를 발생시킵니다. 완성 엔진에서 호출하기위한 것입니다.

이것은 함수 나 변수가 어떤 방식으로 라이브러리 내부에 있고 최종 사용자 (또는 최종 프로그래머)를위한 것이 아니라는 것을 나타 내기 위해 선행 밑줄을 사용하기 위해 다양한 프로그래밍 언어에서 상당히 널리 퍼져 있습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.