터미널을 열 때이“declare -x…”행을 일으키는 원인은 무엇입니까? 포함 /etc/bashrc하기

Fedora 컴퓨터에서 터미널을 열면 (또는 ssh) 프롬프트가 표시되기 전에 다음과 같은 여러 줄이 나타납니다.

declare -x CVS_RSH="ssh"
declare -x DISPLAY="localhost:10.0"
declare -x G_BROKEN_FILENAMES="1"
declare -x HISTSIZE="1000"
…

이 원인은 무엇입니까? 이것은 내 편집 후 발생했을 수 .bashrc있지만 변경된 모든 경로는 “PATH =”에 다른 디렉토리 경로를 추가하는 것입니다.

업데이트 (에 응답 heavyd 내가 grep’ed :의 대답) ~/.bashrc, ~/.bash_profile그리고 /etc/bashrc는 “선언”아무것도 찾을 수 없습니다.

나는 다음을 포함 /etc/bashrc하기 때문에 보았다 ~/.bashrc.

if [ -f /etc/bashrc ]; then
        . /etc/bashrc
fi

위의 코드 “PATH =…”, “export …”및 “alias …”를 제외하고 ~/.bashrc또는 ~/.bash_profile스크립트에 아무것도 표시되지 않습니다 .

.bashrcbash ~/.bashrc“를 사용하여 스크립트 또는 .bash_profile스크립트 를 실행하면 “선언”목록이 표시되지만 오류 메시지는 표시되지 않습니다. (내가 달리면 아무것도 보이지 않는다 /etc/bashrc.)

~./bash_profile 매우 간단합니다 :

# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/bin

export PATH

해결 : andrew.n 감사 합니다 . 귀하의 제안은 그것을 추적하는 데 도움이되었습니다. 하나만 실행하면 “declare -x…”행이 모두 출력되며 export실수로 “export”와 “PATH =…”사이에 CR을 삽입했습니다 .bashrc.



답변

운영

env - HOME="$HOME" /bin/bash --login -xv 2>&1 | tee foo

상세 모드에서 bash를 시작합니다. 이것은 모든 초기화 파일을 읽을 때 출력하고 모든 초기화 파일이 실행될 때 출력을이라는 파일에 복사합니다 foo. 그런 다음 호출 foo원인 declare -x을 확인할 수 있습니다.


답변

많은 declare ...진술은 export인수없이 어딘가에서 실행 된 결과 라는 것을 알아 냈습니다 .

내 실수로 줄 바꿈을 찾았습니다 .bashrc.

export
VARIABLE=value

어느 것

export VARIABLE=value

답변

예, .bashrc가 편집했기 때문에 제공되었을 가능성이 큽니다. 스크립트에 구문 오류가 발생하여 출력 될 수 있습니다.

다음을 입력하여이 행이 .bashrc에 있는지 확인할 수 있습니다.

grep declare ~/.bashrc

콘솔에 4 줄 이상이 인쇄되어 있어야합니다. 프롬프트에서 .bashrc 스크립트를 실행하여 오류가 출력되는지 확인할 수도 있습니다.

bash ~/.bashrc