내가 아는 한, 대화형 쉘은 로그인되거나 로그인되지 않을 수 있으며 시작 파일도 다릅니다.
- 대화형 + 로그인 쉘인 경우 →
/etc/profile
첫 번째로 읽을 수 있는~/.bash_profile
,~/.bash_login
및~/.profile
- 대화형 + 비로그인 쉘인 경우
/etc/bash.bashrc
→~/.bashrc
로그인 쉘인지 아닌지에 관계없이 대화형 쉘을 사용할 때마다 일부 변수를 설정하고 싶습니다.
답변1
아니요, 없습니다. 예, 이것은 설계 결함입니다.
다음을 사용하십시오 ~/.bash_profile
.
if [ -e ~/.profile ]; then . ~/.profile; fi
if [[ -e ~/.bashrc && $- = *i* ]]; then . ~/.bashrc; fi
bash에는 더 이상한 특징 중 하나가 있습니다. 즉, 비대화형 로그인 셸이고 상위 프로세스가 rshd
or 인 경우 sshd
bash 소스 ( or 는 ~/.bashrc
아님 )입니다. 따라서 이것을 당신의 맨 위에 놓는 것이 좋습니다 .~/.bash_profile
~/.profile
.bashrc
if [[ $- != *i* ]]; then return; fi
당신은 또한 볼 수 있습니다.bashrc와 .bash_profile의 차이점그리고로그인 쉘과 비로그인 쉘의 차이점은 무엇입니까?