그리고 어떻게 별칭을 자동 완성합니까?
그리고 어떻게 별칭을 자동 완성합니까?
답변:
명령에 따라
/etc/bash_completion.d/*
(또는 일부 시스템의 다른 위치)이 있습니다. 이 함수들은 내장으로 등록 되어 있습니다 (예를 들어 bash 는 명령 을 누를 때 함수 를 호출하도록 지시합니다 ). 그들은 내장을 사용하여 배쉬에게“가능한 완성이있다”고 말한다.complete
complete -F _find find
_find
Tabfind
compgen
--help
와 함께 명령을 호출 하고 출력을 구문 분석합니다. 이러한 명령은 complete
내장에 등록 할 수 있습니다 ( 예 :) complete -F _longopt ls
. _longopt
사실 완성 목록 함수는 고정 목록을 사용하지 않고 명령의 출력을 구문 분석합니다. (가능한 완료를 생성하기 위해 명령의 출력을 구문 분석하는 다른 특수 완료 함수가 /etc/bash_completion.d/*
있습니다. 예를보십시오.)complete
내장은 옵션, 예를 들어,이 -A
별칭을.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
이 작동합니다. 나는 보통 둘 다 주석 처리를 제거합니다. 데비안에서 대화식 / 로그인 쉘을 다루는 것은 약간의 혼란입니다.
비슷한 의견은 아마도 다른 배포판에도 적용되지만 기본적으로 소싱을 활성화 할 수도 있습니다.