
bash
이 시스템에서 사용 :
Linux 3.16.0-4-amd64 #1 SMP Debian 3.16.7-ckt20-1+deb8u4 (2016-02-29) x86_64 GNU/Linux
순서:
cd /tmp
touch test1.txt && touch test2.txt && touch test3.txt
ls test [tab][tab]
쇼:
test1.txt test2.txt test3.txt
명령줄 아래.
이것이 bash
자동 완성이 작동할 것으로 기대하는 방식입니다.
하지만 내가 입력할 때:
ls test* [tab][tab]
(동일한 결과를 기대함) 나는 다음과 같은 결과만 얻습니다(즉, 자동 완성은 독점적으로 확장됩니다).
test1.txt
*
따라서 끝에 있는 별표( ) 와일드카드는 test[23].txt
'접근할 수 없음'을 만듭니다. 나는 이전 버전의 bash에서 동일한 결과를 제공하는 데 사용된 두 시퀀스를 확신합니다. 적어도 내 컴퓨터에서는 그렇습니다.
다른 사람 중에 이 문제가 있는 사람이 있나요? 변경할 수 있는 기본 설정(예: Debian 8)입니까? (다른 쉘 매개변수를 설정 및 해제하려고 시도했지만 shopt
소용이 없었습니다.)
답변1
저에게 맞는 솔루션은 ~/.bashrc
다음 과 같습니다.
# enable programmable completion features (you don't need to enable
# this, if it's already enabled in /etc/bash.bashrc and /etc/profile
# sources /etc/bash.bashrc).
if ! shopt -oq posix; then
if [[ -f /usr/share/bash-completion/bash_completion ]]; then
. /usr/share/bash-completion/bash_completion
elif [[ -f /etc/bash_completion ]]; then
. /etc/bash_completion
fi
fi
이것이 자동 완성을 담당한다고 생각되는 블록입니다. 주석을 달고 새 셸을 시작한 후에는 작동할 뿐만 아니라 익숙한 방식으로 돌아갔습니다!
여전히 -clause가 무엇을 의미하는지 잘 모르겠지만 if
작동하는 동안 고치려고 노력하지는 않을 것입니다.