답변:
.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 [ -f /etc/bash_completion ] && ! shopt -oq posix; then
. /etc/bash_completion
fi
bash-completion
이것이 작동 하려면 패키지 가 필요 하다는 것을 추가하고 싶습니다 . 이상하게도, 우리 회사의 표준 설치에는이 패키지가 없습니다.
나는 또한 bash 완성 실패에 대해 다음과 같은 추가 설명을 추가 할 것이라고 생각했다. 주석이 너무 길어서 bash 완성에 문제가있는 사람에게 유용 할 수 있습니다. 모든 중복이 참조됩니다.
당신이 적절한 선을 경우에도 귀하 .bashrc
와 (위의 대답으로) bash-completion
당신이 중 하나가있는 경우 설치된 패키지, bash는 완성은 여전히 제대로 작동 할 수 있습니다 shopt -s nullglob
또는 shopt -s failglob
귀하의 .bashrc
또는 .bash_aliases
.
다음 시나리오는 적절한 사용자 정의 bash 완료 라인 이 설치되어 있고 적절한 테스트를 수행하기 위해 모든 사용자 정의 를 사용하여 테스트 .bashrc
하고 .bash_aliases
제거하여 공정한 테스트를 제공합니다 ..bashrc
bash-completion
1) 첫 번째 시나리오는 또는 shopt -s failglob
에 있을 때 입니다..bashrc
.bash_aliases
완전한 디렉토리와 파일을 각각 탭하려고 할 때 다음 오류가 발생합니다.
cd Dbash: no match: "${COMP_WORDS[@]}"
cat pabash: no match: words[0]=${!ref}${COMP_WORDS[i]}
그러나 명령은 여전히 성공적으로 완료됩니다.
2) shopt -s nullglob
활성화되면 디렉토리 또는 파일을 탭 완성하려고하면 완료되지 않고 모든 것이 나열됩니다.
cd Do
.adobe/ .gimp-2.6/ Podcasts/
.aptitude/ .gnome2/ Public/
.audacity-data/ .gnome2_private/ .pulse/
............
목록이 너무 길어서 모든 것을 재현 할 필요가 없기 때문에 여기에서 목록을 줄였습니다.
그러나 명령 완료는 여전히 작동합니다.
따라서 적절한 줄이 있고 설치 되었다고 가정하면 bash 완료 오류의 문제를 제거 shopt -s failglob
하거나 shopt -s nullglob
해결할 수도 있습니다 ..bashrc
bash-completion
우분투 14.04.01로 업데이트
.bashrc에 다음 조각이 있는지 확인하십시오 (기본적으로 있어야 함).
sudo vim /etc/bash.bashrc (파일을 편집하려면 "i"를 입력하십시오)
# enable bash completion in interactive shells
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
위의 7 줄 주석 해제
파일 저장 "esc + w + q + enter"
bash를 다시 시작하십시오.
exec bash