~/.bashrc에 정의된 환경 변수의 범위는 무엇입니까? [복사]

~/.bashrc에 정의된 환경 변수의 범위는 무엇입니까? [복사]

셸에 정의된 환경 변수를 셸의 하위 프로세스에서 사용할 수 있다는 점을 고려하세요.
터미널을 열면 .bashrc를 읽고 해당 명령을 실행합니다. 이는 .bashrc를 모든 터미널에서 사용할 수 있음을 의미합니다.


bashrc의 환경 변수가 정기적으로 실행되는 스크립트에 적용되는지 궁금합니다. 즉, 이러한 스크립트를 실행하기 위해 터미널을 수동으로 열지 않습니다.

데스크탑 아이콘을 클릭하여 QtCreator를 시작하면 어떻게 됩니까? QtCreator 프로세스에서 bashrc 환경 변수를 사용할 수 있습니까? 왜?

그렇지 않은 경우 물리적으로 터미널을 열지 않는 스크립트에 환경 변수를 제공하는 방법은 무엇입니까?


답변시 참고문헌을 함께 기재해주세요.

답변1

여기에는 덜 표준화된 구성 요소가 몇 가지 있습니다.

대개,데스크탑 환경은 .profile해당 하위 프로세스가 정의된 모든 변수를 상속하도록 사용자의 환경을 읽습니다.

대개,데스크톱 환경은 전혀 읽지 않습니다 .bashrc. 예를 들어 macOS는 모든 새 터미널을 로그인 셸로 실행하므로 Bash가 로그인 셸인 경우 이 시점에서 로그인 파일을 읽습니다.

"타이머로 실행"이 무엇을 의미하는지 명확하지 않습니다. cron또는 에서 무언가를 실행하면 at대화형 시작 파일을 읽지 않습니다( bash -i scriptname강제하려는 경우 이와 같은 작업을 수행할 수는 있지만).

Bash에 관한 한 .bashrc권위 있는 참조는 다음과 같습니다.배쉬 문서.

시스템 전체 변수를 정의하는 이식 가능한 위치는 /etc/profile일부 플랫폼도 유사한 /etc/environment.$HOME/.profile

관련 정보