질문:
현재 내가 있는 디렉터리에 있는 "build"라는 디렉터리로 변경하려고 한다고 가정해 보겠습니다. 나는 시작한다:
cd b
그런 다음 Tab 키를 한 번 누릅니다(현재 디렉터리에 문자로 시작하는 다른 디렉터리가 없음을 알고 있음 b
). 필요에 따라 뒤로 클릭하거나 변경하거나 향상할 준비가 된 다음을 보고 싶습니다.
cd build
그러나 Linux Peppermint 3을 실행하는 넷북에서 탭 버튼을 누르면 다음과 같은 일이 발생합니다.
cd bbash: command substitution: line 74: syntax error near unexpected token `done'
bash: command substitution: line 74: ` done'
내가 시도한 것들:
"bash-completion" 패키지를 다시 설치해 보았지만 눈에 띄는 효과는 없었습니다.
파일, 특히 74행을 살펴봤지만
/etc/bash_completion
분명히 수정해야 할 부분( )을 찾을 수 없습니다complete -f -X '*.Z' compress znew
. 어쩌면 내가 잘못된 파일을 찾고 있는 것일 수도 있습니다., 등의 명령에 대한 완성 기능이 제대로
git
작동하는 것으로 나타났습니다 . 그러나 파일 이름을 자동 완성하려는 시도 도 작동하지 않습니다.gedit
node
kate
디버그를 실행하면
bash -x
많은 코드가 터미널에 인쇄됩니다. 이것이 마지막 부분입니다(주석 참고).+ toks=(${toks[@]-} $( compgen -d -- "$quoted" | { while read -r tmp; do # TODO: I have removed a "[ -n $tmp ] &&" before 'printf ..', # and everything works again. If this bug suddenly # appears again (i.e. "cd /b<TAB>" becomes "cd /"), # remember to check for other similar conditionals (here # and _filedir_xspec()). --David printf '%s\n' $tmp done } )) bash: command substitution: line 74: syntax error near unexpected token `done' bash: command substitution: line 74: ` done'
언급된 조건을 다시 추가하려고 시도했지만 효과가 없었습니다.
임시 삭제도 해봤
etc/bash_completion.d
지만 소용이 없습니다.완성된 목록을 보려고 했지만
complete -p
내가 무엇을 찾고 있는지 잘 모르겠습니다.
최종 요청
필요한 경우 쉘 스크립트를 직접 작성하고 싶습니다. 이 과정에서 이에 대해 더 자세히 알아볼 수 있습니다. 정말 고치고 싶습니다. 어떤 제안이라도 감사하겠습니다.
답변1
Bash 완성은 모듈식입니다. 다양한 패키지가 자체 완성 확장을 제공합니다. 다른 패키지에 오류가 있을 수 있습니다. mv /etc/bash_completion.d{,.old}
문제가 해결되는지 확인해 보세요 . 그렇다면 다시 뒤로 이동하고 mv /etc/bash_completion.d{.old,}
개별 파일을 디렉터리 밖으로 하나씩 이동하여 문제를 일으키는 파일을 찾으십시오. /etc/bash_completion.d
(이 디렉토리는 페퍼민트에서는 이름이 약간 다를 수 있습니다.)
답변2
아직 공식적으로 언급할 수는 없으므로 다른 방향을 가리키는 부분 답변을 제공하겠습니다. 키 바인딩을 확인할 수 있나요?
$ bind -p | grep -i tab
나는 과거에 사람들이 Tab 키를 기능에 연결하기로 결정한 상황에 직면했습니다. 또 다른 옵션은 다음과 같이 "-x" 매개변수를 사용하여 bash 쉘을 분기하는 것입니다.
$ bash -x
테스트를 반복하세요. 대신 사용하는 경우에도 echo
이런 일이 발생합니까 cd
?
$ echo b <tab>