* nix 박스가 LDAP 클라이언트로 설정된 경우 로컬 사용자로 로그인 한 경우에도이 문제가 발생할 수 있습니다.
지루한 디버그 정보 :로 디버깅 set-x
중 완료된 항목을 발견했습니다.
> set -x
> ls foo<tab>
... <--- lots of output removed
...
+ _quote_readline_by_ref foo quoted
+ '[' -z foo ']'
+ [[ foo == \'* ]] <--- froze here
+ [[ foo == ~* ]] <--- actually causing the trouble
확인 : 나는 이것 ls ~*
또한 매달렸다는 것을 확인했다 . 내 LDAP 서버가 느리다는 것이 밝혀졌지만 이것은 bash 완료 및 ls와 같은 것에 영향을 미치지 않아야합니다!
솔루션 : Aha, bash-completion + ldap에 대해 버그가 제기 되어 최신 버전으로 수정되며 대기하지 않으려면 간단한 패치가 적용 됩니다. 다시 한 번 탭 완성이 빠릅니다.
링크가 사라지는 경우를 대비 한 패치 파일입니다. 545 줄과 547 줄에서 ~를 이스케이프하는 것입니다.
--- /usr/share/bash-completion/bash_completion.orig 2014-11-06 10:36:14.981888369 +0100
+++ /usr/share/bash-completion/bash_completion 2014-11-06 10:36:25.142070963 +0100
@@ -542,9 +542,9 @@
elif [[ $1 == \'* ]]; then
# Leave out first character
printf -v $2 %s "${1:1}"
- elif [[ $1 == ~* ]]; then
+ elif [[ $1 == \~* ]]; then
# avoid escaping first ~
- printf -v $2 ~%q "${1:1}"
+ printf -v $2 \~%q "${1:1}"
else
printf -v $2 %q "$1"
fi
이 패치를 적용하려면 현재 ssh 세션을 종료하고 다시 로그인해야합니다.