![.profile에서 스크립트를 가져오지 못하는 이유는 무엇입니까?](https://linux55.com/image/137047/.profile%EC%97%90%EC%84%9C%20%EC%8A%A4%ED%81%AC%EB%A6%BD%ED%8A%B8%EB%A5%BC%20%EA%B0%80%EC%A0%B8%EC%98%A4%EC%A7%80%20%EB%AA%BB%ED%95%98%EB%8A%94%20%EC%9D%B4%EC%9C%A0%EB%8A%94%20%EB%AC%B4%EC%97%87%EC%9E%85%EB%8B%88%EA%B9%8C%3F.png)
로그인하거나 새 대화형 셸을 열 때마다 실행하고 싶은 실행 가능한 스크립트가 있습니다. 이 실행 파일의 경로를 추가 .profile
하고 다음 줄을 추가하여 얻었습니다..profile
source $HOME/bin/wrapper
다시 시작한 후에는 스크립트가 실행되지 않습니다.
.profile
Fedora를 다시 시작한 후에도 bash가 bash에서 스크립트를 실행하지 않는 이유는 무엇입니까?
편집하다:질문을 더 명확하게 하라
답변1
.profile
몇 가지 조사를 한 결과 다음 두 가지 이유로 소싱 스크립트가 작동하지 않는다는 사실을 발견했습니다 .
새 터미널 세션을 열면 bash는 로그인이 아닌 대화형 셸로 실행됩니다.
.profile
비대화형 로그인 셸에 대해서만 실행되므로 터미널 세션을 시작해도 실행되지 않습니다 .스크립트는 로그인 시간에서 시작되지만
.profile
, 로그인 시간과 관련이 없습니다.길로그인 시 하위 프로세스로 내보낸 환경 변수를 설정합니다.profile
.원천로그인 시 초기화된 첫 번째 bash 인스턴스에서 시작된 하위 프로세스로 내보낼 수 없는 명령입니다. 즉, 대화형이며 로그인이 아닌 대화형 셸에서 실행되는 유일한 시작 파일source
이어야 합니다 ..bashrc
TL;DR .profile
스크립트는 로그인 시 한 번만 가져오고 터미널 세션 환경으로 전달되지 않습니다. 그래서 스크립트를 .bashrc
.
위의 질문에 답할 수 있는 능력 ~/.bash_profile
이 없습니다 .원천명령이 추가되었습니다.profile
보너스:이러한 이유로 별칭 설정도 작동하지 않을 것이라고 가정합니다. .profile
터미널 창에 새 환경이 생성될 때마다 실행해야 하는 명령이기 때문입니다.
답변2
man bash
(강조 내) 에서 :
bash가 --login 옵션을 사용하여 대화형 로그인 셸 또는 비대화형 셸로 호출되면 먼저 /etc/profile 파일(파일이 있는 경우)에서 명령을 읽고 실행합니다. 파일을 읽은 후 ~/.bash_profile, ~/.bash_login, ~/.profile을 순서대로 찾아 이들에서 명령을 읽고 실행합니다.존재하고 읽을 수 있는 첫 번째 항목입니다.
~/.bash_profile
Jasonwryan이 말했듯이, 아마도 귀하의 콘텐츠가 ~/.profile
읽히지 않도록 하나가 있을 것입니다.이 답변~/.profile
에서 이 작업을 수행하는 것이 좋습니다 ~/.bash_profile
. 실행 가능한 스크립트를 소스 코드로 만들 수도 있습니다 ~/.bash_profile
.
살펴보실 수도 있고,배쉬 온라인 매뉴얼.