터미널을 열 때이“declare -x…”행을 일으키는 원인은 무엇입니까?


15

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스크립트에 아무것도 표시되지 않습니다 .

.bashrc" bash ~/.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.


/etc/profile.d/를보십시오
freiheit

/etc/profile.d/에서 무엇을 찾아야합니까? 모든 파일은 무엇입니까? (아마도 그것에 대해 새로운 질문을 만들어야합니다.)
Daryl Spitzer

감사. 내 경우에는 수출과 PATH 사이의 CR이기도합니다. :)
marlar

답변:


8

운영

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

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


6

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

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

export
VARIABLE=value

어느 것

export VARIABLE=value

예. 이것이 정답입니다. 터미널에 "export"를 입력하면 동일한 선언 -x 출력이 표시됩니다.
Sterling Bourne

예, 이것은 나에게 적용됩니다! 실수로 수출 내용을 다음 줄에 넣었습니다. 나는 그것들을 같은 줄에 넣고 작동합니다.
fanchyna

3

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

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

grep declare ~/.bashrc

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

bash ~/.bashrc
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.