이 Ubuntu 시스템에서는 새 터미널을 시작할 때 오류가 표시됩니다. 문제는 이것이다:
bash 완료가 ( )에서 파생되면 . /usr/share/bash-completion/bash_completion
쉘이 발생하지 않고 bash
목록이 있는 일부 변수 정의가 local words=()
실패합니다( bash
목록만 이해되기 때문에).
내 솔루션은 명시적으로 호출하는 것이었지만 bash /usr/share/bash-completion/bash_completion
터미널을 열 때 다른 쉘이 호출되는 이유를 알고 싶습니다. 나는 bash가 나의 기본값이므로 소싱 프로세스 중에도 사용될 것이라고 생각했습니다.
bash-completion 파일을 호출하기 전에 하나 만들었고 echo $0
출력은 bash
.
구매에 bash를 사용하지 않는 이유는 무엇입니까?
댓글의 문제를 해결하려면 다음 단계를 따르세요.
이는 새 콘솔을 시작할 때 발생합니다. 이는 커널이 새 터미널 창인 call 을 시작하고 ~/.profile
차례로 . "$HOME/.bashrc"
bash 완료( . /usr/share/bash-completion/bash_completion
) 를 수행함을 의미합니다.
~/.bash_completion
파일이 없습니다 .
echo "$0"
실패하고 실행되지 않기 때문에 bash_completion 안에 넣을 수 없습니다 .
my .bashrc
및 .profile
Ubuntu와 함께 제공되는 기본 항목입니다. 나는 아니에요 .bash_profile
. 기본 Ubuntu 14.04에서 찾을 수 있습니다./etc/skel/
답변1
문제는 쉘이나 chsh 또는 외부 항목에 있는 것이 아닙니다. 이것은 지역에 대한 어리석은 별칭입니다. 어떤 사람은 로컬 IP 주소를 표시하는 별칭을 만들고 이름을 "local"로 지정하는 것이 좋은 생각이라고 생각했습니다.
local cword words=()
실패는 쉘이 어레이를 처리할 수 없기 때문에 발생하지 않습니다. 별칭이 확장되고 있고 ()
거기에서 의미가 없기 때문에 실패합니다.