Bash 변수는 어디에 정의되어 있나요?

Bash 변수는 어디에 정의되어 있나요?

bash 변수가 정의된 파일을 어떻게 찾을 수 있나요?

echo명령이 다음과 같이 표시된다고 가정합니다 .

$ echo $DB_ROOT
/home/mahmood/db-4.0

이제 이 변수가 정의된 파일을 어떻게 찾을 수 있습니까? 에서 정의하지 않았다고 말해야 합니다 ~/.bashrc.

답변1

있는 곳이 많습니다~할 수 있었다정의됩니다.

bash전체 설명을 보려면 맨페이지 아래 를 살펴봐야 합니다 INVOCATION. 하지만 모든 내용을 이해하기 전에 머리가 아플 수도 있다는 점을 경고하고 싶습니다. :-)

셸이 호출되는 방식과 존재하는 파일에 따라 다음 중 하나 이상이 될 수 있습니다.

  • /etc/profile.
  • /etc/bash.bashrc
  • ~/.bash_profile.
  • ~/.bash_login.
  • ~/.profile.
  • ~/.bashrc.
  • 옵션 으로 지정된 모든 것 --rcfile.
  • 환경 변수 로 지정된 모든 것 BASH_ENV.
  • 환경 변수 로 지정된 모든 것 ENV.
  • 이전 파일에서 호출된 모든 파일.

그만한 가치가 있기 때문에 일반적으로 나는 ~/.bash_profile(이것이 세트의 가장 높은 우선순위이기 때문에 {~/.bash_profile, ~/.bash_login, ~/.profile})첫 번째해당 그룹에서 찾는 것).

나는 또한 내가 가지고 있는지 확인 ~/.bashrc하고 ~/.bash_profile마지막에 소스를 제공합니다.

그렇게 하면 ~/.bash_profile로그인 셸에 필요한 항목만 보관하고 ~/.bashrc원하는 항목만 보관할 수 있습니다.모든껍데기. 후자가 "누적" 명령(경로 끝에 무언가를 추가하는 것과 같은)을 보유하지 않는지 확인하기만 하면 됩니다.

특히 다른 쉘을 사용하고 있고 그들 사이에서 프로필을 공유해야 하는 경우 이를 설정하는 다른 방법이 있지만 위의 구성표는 제가 찾은 bash-only 설정 중 가장 쉽습니다.

관련 정보