명령줄 도구는 어떻게 자체 자동 완성 목록을 가질 수 있습니까?

명령줄 도구는 어떻게 자체 자동 완성 목록을 가질 수 있습니까?

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

예를 들어 내가 입력하면적절한탭을 두 번 누르면 삭제, 업데이트, 업그레이드 등만 표시되고 현재 디렉터리의 파일에 대한 다른 명령이나 작업은 표시되지 않습니다.

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

답변1

이를 위해 bash v4의 완성 기능을 사용합니다. 완료 코드는 apt-get패키지에서 제공 bash-completion되며 에 있습니다 /usr/share/bash-completion/completions/apt-get. 완료되었지만 기본 패키지의 일부가 아닌 bash-completion애플리케이션 의 완료 스크립트는 /etc/bash_completion.d.

완성된 콘텐츠는 소싱을 통해 로딩됩니다 /etc/bash_completion. 정확한 실행 위치는 Debian 또는 Ubuntu 버전에 따라 다릅니다. 이는 차례로 소스 /usr/share/bash-completion/completions/etc/bash_completion.d.

관련 정보