_longopt
내장된 완성 기능(예: )을 사용하는 명령 에 대해 자동 완성을 사용하는 경우 mkdir
셸은 필요한 제안 외에 항상 현재 디렉터리의 내용을 제안합니다.
예를 들어 내가 입력하면
mkdir ~/somedir
applications
그런 다음 Tab을 두 번 누릅니다. Bash 제안: (현재 디렉토리 에 가 포함되어 있다고 가정 desktop
)
applications/ desktop/ documents/
...
somedir_a/ somedir_b/
somedir_a
정상적인 동작을 복원하고 bash가 다른 somedir_b
파일/디렉터리 만 제안하고 제안하지 않도록 하려면 어떻게 해야 합니까 ?
배쉬 버전: GNU bash, version 5.0.11(1)-release (x86_64-redhat-linux-gnu)
배쉬 완성:2.8
답변1
nullglob
이 동작은 .dll 파일에 있을 수 있는 셸 옵션으로 인해 발생할 수 있습니다 .bashrc
.
그 이유는 이 동작을 활성화 _longopt
시키는 함수 정의에 버그가 있기 때문입니다._longopt
해결 방법은 이 옵션을 비활성화하거나 _longopt
기능을 직접 재정의하는 것입니다.
비슷한 효과가 여기에 설명되어 있습니다.nullglob이 탭 완성에 영향을 미치는 이유는 무엇입니까?, 하지만 이 옵션에 문제가 있다는 것을 알지 못하면 이 문제를 찾기가 어렵습니다.
편집 : 지적한대로@프라멀베리, 이것은알려진 문제그리고 bash-completion
. 수정 사항은 릴리스에 있지만 2.9
해당 릴리스는 아직 Fedora(및 아마도 다른 시스템)에서 사용할 수 없습니다.