언제 변수를 내보내야 합니까? [복사]

언제 변수를 내보내야 합니까? [복사]

오래 전, 처음 bash에서 변수 할당을 시작했을 때 다음과 같았습니다.

export EDITOR=nano
export PS1=something

...그리고 좋아하는 것들도요. 수출 습관이 항상 나를 괴롭혔습니다.

그러나 이제 나이가 들고 더 현명해졌으면 이것이 필요하지 않다는 것을 알고 있으므로 제 질문은 언제 필요한가입니다. 언제가 아닌가? 나는 .bashrc내가 작성한 모든 스크립트가 Perl로 수행되기 때문에 간단한 작업 외에는 변수 할당을 거의 수행하지 않습니다 .

답변1

이 질문에 완전하고 정확하게 대답하는 것은 어렵습니다. 왜냐하면 아이디어 는 이름/값 쌍( 예를 들어)을 내보내기 셸의 하위 프로세스에 의해 상속된 정보에 export넣는 것이기 때문입니다.EDITOR=nano

일반적으로 다음에서 설정한 내용을 내보내려는 경우:: 는 텍스트 편집기, 메일 프로그램, 데이터베이스 인터페이스 및 기타 여러 프로그램에 대한 기본 설정을 지정하기 때문에 좋은 예 .bashrc입니다 EDITOR. 텍스트 편집기를 사용하여 이러한 프로그램 중 하나가 실행될 때 어떤 프로그램이 실행되는지 결정합니다. 당신이 텍스트를 편집하길 원해요. 나는 EDITOR=vi그것을 직접 사용합니다. 다른 일반적인 예로 는 , 및 가 .bashrc있습니다 . 나는 환경 섹션을 읽고 읽음으로써 이것을 얻었습니다 .ORACLE_HOMEPATHVISUALTERMSHELLman more

이제 "일반적인 경우"에 대해 썼으므로 및 외에도 환경 값이 많고 다양하며 특정 하위 시스템에 따라 다르다는 점에 유의해야 EDITOR합니다 VISUAL. 악명 높은 Oracle 데이터베이스 시스템으로 무엇이든 하려면 많은 추가 환경 값이 필요하며 그 중 상당수는 미신적입니다. 쉘의 환경은 이름/값 쌍의 집합이기 때문에 개별 시스템은 다양한 방식으로 환경을 사용할 수 있습니다. Apache 웹 서버는 CGI-BIN환경의 프로그램에 많은 값을 전달합니다.

내 조언은 가능한 한 적은 수의 변수를 내보내는 것입니다. 일부 프로그램이 언제 비밀 환경 변수의 값을 사용하기로 결정했는지 알 수 없으므로 대화형 환경을 오염시키지 마십시오. 환경 변수를 설정하는 것 외에는 아무것도 하지 않는 작은 쉘 스크립트를 작성한 다음 해당 변수가 필요한 프로그램을 실행하십시오.

대화형 환경에 대해 많은 환경 변수를 설정한 경우, cron무언가를 실행하려고 하면 놀랄 것입니다. crond환경이 올바르게 설정되지 않고 그 이유를 알 수 없게 됩니다.

관련 정보