로그인 여부에 관계없이 항상 대화형 모드로 전환되는 Bash 파일이 있습니까?

로그인 여부에 관계없이 항상 대화형 모드로 전환되는 Bash 파일이 있습니까?

내가 아는 한, 대화형 쉘은 로그인되거나 로그인되지 않을 수 있으며 시작 파일도 다릅니다.

  • 대화형 + 로그인 쉘인 경우 → /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에는 더 이상한 특징 중 하나가 있습니다. 즉, 비대화형 로그인 셸이고 상위 프로세스가 rshdor 인 경우 sshdbash 소스 ( or 는 ~/.bashrc아님 )입니다. 따라서 이것을 당신의 맨 위에 놓는 것이 좋습니다 .~/.bash_profile~/.profile.bashrc

if [[ $- != *i* ]]; then return; fi

당신은 또한 볼 수 있습니다.bashrc와 .bash_profile의 차이점그리고로그인 쉘과 비로그인 쉘의 차이점은 무엇입니까?

관련 정보