그리고 어떻게 별칭을 자동 완성합니까?
답변
명령에 따라
- 누군가 옵션을 포함하여 가능한 인수 인수를 생성하는 함수를 작성했을 수 있습니다. 일부 명령의 기능
/etc/bash_completion.d/*
(또는 일부 시스템의 다른 위치)이 있습니다. 이 함수들은 내장으로 등록 되어 있습니다 (예를 들어 bash 는 명령 을 누를 때 함수 를 호출하도록 지시합니다 ). 그들은 내장을 사용하여 배쉬에게“가능한 완성이있다”고 말한다.complete
complete -F _find find
_find
Tabfind
compgen
- 일부 명령의 경우 bash는 인수
--help
와 함께 명령을 호출 하고 출력을 구문 분석합니다. 이러한 명령은complete
내장에 등록 할 수 있습니다 ( 예 🙂complete -F _longopt ls
._longopt
사실 완성 목록 함수는 고정 목록을 사용하지 않고 명령의 출력을 구문 분석합니다. (가능한 완료를 생성하기 위해 명령의 출력을 구문 분석하는 다른 특수 완료 함수가/etc/bash_completion.d/*
있습니다. 예를보십시오.) - 별명과 같은 경우 완료 함수는 bash의 내부 테이블에서 별명을 찾습니다.
complete
내장은 옵션, 예를 들어,이-A
별칭을.
답변
파일을 봐
/ etc / bash_completion
디렉토리에서 파일을 관찰하십시오.
/etc/bash_completion.d
답을 찾을 수 있습니다.
답변
bash 완성 지원은 bash 완성 패키지에 의해 Debian과 Ubuntu에서 제공 됩니다 . 또한 일반적으로 다음을 주석 해제 /etc/bash.bashrc
하거나 .bashrc
bash 완성 파일을 소싱해야합니다. 다음은 다음과 같습니다 /etc/bash.bashrc
.
# enable bash completion in interactive shells
if [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
이 작동합니다. 나는 보통 둘 다 주석 처리를 제거합니다. 데비안에서 대화식 / 로그인 쉘을 다루는 것은 약간의 혼란입니다.
비슷한 의견은 아마도 다른 배포판에도 적용되지만 기본적으로 소싱을 활성화 할 수도 있습니다.