나는 이 질문으로 시작합니다.
Bash는 특정 명령에 대해 자동 완성을 비활성화합니다.
유일한 차이점은 제 경우에는 문제의 명령이 였다는 것입니다 configure
. 해당 질문에 설명된 솔루션을 성공적으로 적용했습니다(즉, 로 완성을 제거해야 합니다 complete -r configure
). 문제는... 한 번 완성하려고 하면 다시 살아난다는 것입니다.
$ complete -p configure
complete -F _configure configure # Hum... there *is* a completion
$ complete -r configure # So let's remove it!
$ complete -p configure
bash: complete: configure: no completion specification # Ha! It's gone!
# Let's try it now.
$ ./configure <TAB> # Damn! It still doesn't work!
$ complete -p configure # It's back from the dead!!!
complete -F _configure configure
이 문제를 해결하는 방법을 아는 사람이 있나요?
편집하다:
또 다른 정보:
complete -p configure
이것을 내 항목에 추가했는데 .bashrc
시작 시 다음 오류가 발생하기 시작했습니다.
bash: complete: configure: no completion specification
흥미 롭군. 시작시 완료가 존재하지 않습니다 configure
... 일종의 것 같습니다동적완성의 정의는 여기서 발생합니다.
답변1
예, 스크립트는 configure
동적으로 로드됩니다.
실행된 모든 명령을 인쇄하는 옵션을 설정하여 이를 확인할 수 있습니다 set -x
. 그리고 TAB 자동완성을 사용해 보세요.
소스에 대한 단서는 이 명령의 출력입니다.
dpkg -L bash-completion | xargs egrep '\<_configure\>' 2>/dev/null
파일을 삭제 configure
하고 bash 인스턴스를 다시 시작하거나 clean 을 사용하세요 complete -r configure
.
sudo rm /usr/share/bash-completion/completions/configure