동적 bash 자동 완성을 구현하는 방법

동적 bash 자동 완성을 구현하는 방법

사용 가능한 프로젝트를 나열하는 스크립트를 만들었습니다. 당신은 할 수시작입력으로 script start <project>.

이제 자동완성을 활성화해 놓으면 좋을텐데 를 입력 start Organ하고 누르면 TAB로 자동완성됩니다 start Organisation.

어려운 부분은 프로젝트 목록이 동적이라는 것입니다. 사용 가능한 항목 목록은 자주 변경되며 모든 사용자가 사용할 수 있는 항목이 다릅니다.

내 생각은 사용 가능한 항목을 json 파일에 저장하고 해당 파일을 사용하여 자동 완성을 활성화하는 것입니다. 에서 파일을 만들어야 한다는 것을 알고 있지만 /etc/bash_completion.d/사용 가능한 항목에 따라 "동적" 자동 완성을 구현하는 방법을 모르겠습니다.

답변1

사용 가능한 모든 항목을 나열 하는 스크립트가 있다고 가정해 보겠습니다 output_projects. 이제 bash 함수에서 호출하세요.

_list_projects() {
  ./output_projects
}

start이제 다음과 같이 예제 에 바인딩합니다 .

complete -F __list_projects start

기본적으로 bash를 누를 때마다 <tab>함수가 실행되고 사용 가능한 항목의 새 목록이 표시됩니다.

테스트 대상:

$ bash --version | head -1
GNU bash, version 4.3.11(1)-release (x86_64-pc-linux-gnu)

문제가 해결되었나요? 그렇지 않다면 찾고 있는 내용을 바꿔서 명확하게 설명하세요.

관련 정보