내 것을 청소 ~/.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
이러한 경로는 존재하지 않으며 이전에는 존재한 적이 없다고 확신합니다. 그런데 저는 Debian을 사용하고 있습니다. 개발자가 Debian을 제거하는 것을 잊었나요?
귀하의 정보에 감사드립니다
답변1
이 bash
셸 코드의 목적은 발견된 두 파일 중 첫 번째 파일을 가져오는 것입니다. 단, 셸의 posix
옵션이 활성화되지 않은 경우에만 해당됩니다. 이 두 파일은 쉘 특정 프로그래밍 가능 자동 완성 지원을 제공할 수 있습니다.
Debian Linux 시스템에서는 두 경로 이름이 모두 package 에서 제공됩니다 bash-completion
. 이 패키지가 설치되어 있지 않으면 쉘 코드는 아무 작업도 수행하지 않습니다.
bash
이 코드를 에 배치하는 것은 Debian의 패키지 입니다 /etc/skel/.bashrc
. /etc/skel
새 사용자 계정이 생성되면 사용자의 초기 파일 세트가 복사됩니다. 즉, 파일이 .bashrc
그 안의 코드와 함께 에서 으로 복사됩니다. 계정이 생성되고 사용자가 계정에 액세스할 수 있게 되면 사용자는 원하는 대로 초기 파일 세트를 삭제하거나 수정할 수 있습니다./etc/skel/.bashrc
~/.bashrc
이 코드는 bash-completion
패키지가 설치되지 않았기 때문에 존재합니다. 결국 이것은 단지존경받는Debian에 대한 패키지의 종속성 (패키지에서 분리되어 bash
2008년에 bash
자체 패키지가 되었습니다 ). 패키지가 설치된 경우 bash-completion
사용자는 쉘의 프로그래밍 가능한 완성 시스템을 사용하기를 원할 수 있으므로 파일을 얻어야 합니다. 필요하지 않은 경우 패키지를 제거하거나 bash-completion
다중 사용자 시스템의 경우 패키지에서 관련 코드를 제거하거나 주석 처리하는 것을 고려하십시오 ~/.bashrc
.
이 코드의 모양에 영향을 미치는 관련 데비안 버그 보고서:
- #655071 (2011),#655208 (2012), 두 개의 개별 경로 이름 보기에 관한 내용입니다.
- #498474 (2008)
posix
, 이러한 파일은 이 옵션이 설정되지 않은 경우에만 획득됩니다.