TAB 자동 완성은 완료할 옵션을 어떻게 찾나요?

TAB 자동 완성은 완료할 옵션을 어떻게 찾나요?

별칭은 어떻게 자동 완성되나요?

답변1

명령에 따라 다릅니다.

  • 누군가 옵션을 포함하여 가능한 인수 완성을 생성하는 함수를 작성할 수도 있습니다. /etc/bash_completion.d/*일부 명령에 대한 기능은 에서(또는 일부 시스템에서는 다른 위치에서) 찾을 수 있습니다 . 이 기능은 다음에 등록되어 있습니다.complete 내장(예를 들어 명령을 누를 때 complete -F _find findbash에 이 함수를 호출하도록 지시합니다 .) 그들은 사용한다_findTabfindcompgen내장 기능은 bash에게 "여기에 가능한 완성이 있습니다"라고 알려줍니다.
  • 일부 명령의 경우 bash는 인수를 사용하여 명령을 호출 --help하고 출력을 구문 분석합니다. 이러한 명령은 다음에 등록될 수 있습니다.complete예를 들어 complete -F _longopt ls. _longopt실제로 고정 목록을 사용하는 대신 명령의 출력을 구문 분석하는 완료 생성 함수입니다. (가능한 완성을 생성하기 위해 명령의 출력을 구문 분석하는 보다 전문화된 다른 완성 함수가 있습니다. /etc/bash_completion.d/*예를 참조하세요.)
  • 별칭과 같은 것의 경우 완성 기능은 bash의 내부 테이블에서 이를 찾습니다. 이것complete-A별칭 과 같은 해당 옵션이 내장되어 있습니다 .

답변2

파일을 살펴보세요

/etc/bash_completion

그리고 디렉터리의 파일을 살펴보세요.

/etc/bash_completion.d

당신은 알게 될 것입니다.

답변3

Bash 완성 지원은 Debian 및 Ubuntu에서 가능합니다.배쉬 완성 패키지. 또한 일반적으로 다음의 주석 처리를 제거 /etc/bash.bashrc하거나 .bashrcbash 완성 파일의 소스 코드를 가져와야 합니다. 다음 내용의 출처는 다음과 같습니다 /etc/bash.bashrc.

# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
    . /etc/bash_completion
fi

이 일을 위해. 나는 보통 둘 다 주석을 해제합니다. 데비안에서 대화형/로그인 셸을 처리하는 것은 약간 혼란스럽습니다.

기본적으로 조달이 활성화되어 있을 수 있지만 유사한 설명이 다른 배포에도 적용될 수 있습니다.

관련 정보