[unix] 명령 줄 도구에는 어떻게 자동 완성 목록이 있습니까?

Ubuntu의 Bash는 도구의 특정 동작 목록을 어떻게 알 수 있습니까?

예를 들어 apt-get 및 tab을 두 번 입력하면 remove, update, upgrade … etc 만 표시되지만 다른 명령이나 현재 디렉토리의 파일에 대한 작업은 표시되지 않습니다.

Go에서 명령 줄 도구를 개발 중이며이를 지원하는 배포판에이 기능을 제공하려고합니다.



답변

이것은 bash v4의 완성 기능을 사용하여 수행합니다. 의 완료 코드 apt-getbash-completion패키지에서 제공 하며에 있습니다 /usr/share/bash-completion/completions/apt-get. 완료되었으며 기본 bash-completion패키지에 포함 되지 않은 응용 프로그램은 완료 스크립트를에 배치합니다 /etc/bash_completion.d.

완료는 소싱을 통해로드됩니다 /etc/bash_completion. 이 작업이 수행되는 위치는 데비안 또는 우분투 버전에 따라 다릅니다. 그 결과로 /usr/share/bash-completion/completions와의 모든 정보를 얻을 수 /etc/bash_completion.d있습니다.


답변