내 .profile
파일에는 다음 줄이 있습니다.
# source bashrc if it exists
if [ -f ~/.bashrc ]; then
source ~/.bashrc
fi
내 파일이 존재하는지 확인하세요 .bashrc
(존재하는 경우). 또한 어떤 이유로 인해 다르게 동작하는 환경을 설정하기 위해 새 컴퓨터에서 실행하는 설정 스크립트도 있습니다.
설정 스크립트가 끝나면 다음이 있습니다.
# read .profile
source "$USERDIR/.profile"
내 홈 디렉토리를 가리 킵니다 $USERDIR
. .profile
이 스크립트가 실행될 때 ".profile sourced"를 에코하고 스크립트가 완료되면 인쇄하기 때문에 올바르게 소스가 제공된다는 것을 알고 있습니다 .
그러나 ( 이 설치 파일에서 시작하는 경우) .bashrc
읽혀지지 않습니다 . 타이핑만 하면 잘 작동하기 때문에 왜 그런지 모르겠습니다 ..profile
.profile
source .profile
bash
.bashrc
내 rc 파일의 에코 라인은 .profile
이 설정 스크립트에서가 아니라 직접 가져올 때만 에코되기 때문에 실행되지 않는다는 것을 알고 있습니다 . .bashrc
스크립트를 가져오려고 하면 if [ -f ~/.bashrc ]
.profile과 동시에 생성되었기 때문에 스크립트가 존재합니다(따라서 실행해야 합니다).
답변1
단계별로. 에 추가하세요.profile
# source bashrc if it exists
if [ -f ~/.bashrc ]; then
echo ".profile is sourcing " ~/.bashrc
source ~/.bashrc
fi
그런 다음 bash를 login:으로 호출하면 bash -l
충분합니다.
.profile is sourcing /home/user/.bashrc
다음 줄이 인쇄되었습니까?
그렇다면 문제는 다음과 같습니다.
- 다음 파일이 존재합니까? ~/.bash_profile, ~/.bash_login
- 이 옵션으로 bash가 호출됩니까
--noprofile
? - 또는 설정 스크립트를 사용하십시오.
그렇지 않은 경우 문제는 .profile
및 또는 에 있습니다 .bashrc
.
- 사용자 디렉터리로 ~ 대신 $HOME을 사용해야 할 수도 있습니다.
대화식으로 실행되지 않을 때 실행을 방지하는 bashrc 행이 있을 수 있습니다.
# If not running interactively, don't do anything [ -z "$PS1" ] && return
답변2
$USERDIR
내 홈 디렉토리를 가리킵니다 .
정확히 어디를 가리키고 있나요 $HOME
? Bash에서는 ~
항상 어떤 지점으로든 확장하세요 $HOME
. 올바르게 설정되지 않아 할 수 없는 경우에는 source ~/.profile
을 (를) 수행할 수 없습니다 .$HOME
$USERDIR/.profile
source ~/.bashrc