"source" 뒤에 명령 이름을 입력하면 자동 완성이 작동하지 않는 이유는 무엇입니까?

"source" 뒤에 명령 이름을 입력하면 자동 완성이 작동하지 않는 이유는 무엇입니까?

sourcePATH기본 검색.

하지만 bash에서는 뒤에 명령 이름을 입력하면 자동 완성 기능이 작동하지 않습니다 source.

일반적으로 자동 완성은 언제 PATH작동하고 언제 작동하지 않습니까?

매개변수를 입력할 때 어떻게 작동하게 할 수 있나요 source?

감사해요.

답변1

source( bash내장 명령) 채택파일 이름인수; PATH 검색은 지정된 파일 이름을 찾을 수 없는 경우에만 트리거됩니다. 따라서 source foo먼저 열려고 시도 ./foo하고 실패할 경우에만 /path/dir/foo현재 디렉터리에 있는 파일 이름을 사용하여 탭 완성을 시도하거나 관심 있는 명령에 대한 경로를 제공합니다. 예상대로 탭 완성이 수행되어야 합니다.

  • 원하는 것을 달성하는 가장 쉬운 방법은 탭 완성이 시도 중이라는 것을 깨닫는 것입니다.전체 파일 이름하지만 당신은 원해요전체 명령. 당신은 트리거할 수 있습니다전체 명령일명 M-!키 바인딩이 있습니다 Alt+!( READLINE장, Completing하위 섹션 man bash참조) .배쉬 온라인 문서추가 완성 기능 및 기본 키 바인딩용입니다. )

  • 어려운 방법은 source호출할 첫 번째 인수에 대해 트리거되는 기본 완료 함수를 수정하는 것입니다.전체 파일 이름그리고전체 명령기능. help complete명령줄에서 Programmable Completionman bash의 하위 섹션을 참조하세요 .배쉬 온라인 문서complete내장 명령이 있습니다.

일반적으로 탭 완성은 위치에 따라 이루어지며 명령줄의 현재 위치에 따라 다른 완성 기능을 호출합니다. Arch 시스템에서 패키지는 /usr/share/bash-completion실행 파일에 대한 컨텍스트 인식 완성 기능을 제공하기 위해 완성 파일을 설치할 수 있습니다 .

관련 정보