zsh 구성-내보내기 또는 내보내기?


23

내 변수를 설정할 때 ~/.zshrc사용할 수 있습니다export

export PATH=/some/path

또는 아닙니다

PATH=/some/path

이것들은 어떻게 다르며 어떤 것을 사용해야합니까?


비 대화식 쉘 (예 : 작성한 쉘 스크립트)에서도 사용되는 환경 변수는로 이동해야합니다 .zshenv.
Francisco

가요 ~/.zshenv뿐만 아니라 로그인 쉘에 의해 공급? PATH거기에 정의 해야합니까 ?
jordelver 2016 년

1
PATH아마 내부에 정의되어야한다 변수의 가장 좋은 예입니다 ~/.zshenv,이 파일에 의해 공급됩니다 어떤 (당신이를 끄고 몇 가지 옵션을 사용하지 않는 한) zsh을 세션. man zsh어떤 파일이 소스로 어떤 순서로 제공되는지 검토 하십시오 .
Francisco

감사합니다. @Francisco 맨 페이지를 읽겠습니다.
jordelver 2016 년

답변:


21

zsh에서 프로그램을 실행하여 var를 보려면 프로그램을 내보내십시오.
경로의 경우 내보내기를 원할 것입니다.
대신 export PATH=/some/path당신은 아마 원하는 export PATH="$PATH:/some/path"완전히 시스템 미리 설정된 경로를 취소하지 않을 경우.


감사합니다. 이제 일반적인 규칙으로 내보내기를 사용하겠습니다.
jordelver

21

Demure는 이미 특정 질문에 답변했습니다. 그러나 이것은 zsh질문 PATH입니다. 그래서 여기에 또 다른 점은 다음과 같습니다 표준 변수 옆에 $PATH, 또한이 $path배열이다. 여기에 차이점이 있습니다 (colons 또는 not ...) :

$ print $PATH
/bin:/usr/bin:/usr/local/bin:/usr/X11R6/bin
$print $path
/bin /usr/bin /usr/local/bin /usr/X11R6/bin

두 변종 모두 자동으로 동기화됩니다. 그렇다면 배열을 사용하면 어떤 이점이 있습니까?

  • 후자는 typeset -U path"각 중복 된 값의 첫 번째 발생 만 유지" 를 통해 선언 할 수 있습니다 (from man zshbuiltins). 즉, 경로 ~/.zshrc를 변경하거나 다른 이유로 인해 계속 소스 를 지정하고 동일한 값으로 반복해서 어지럽히 지 않아도 경로를 깨끗하게 유지합니다 .
  • path+=(/new/path)PATH에 새 디렉토리를 추가하는 데 사용할 수 있습니다 . 요소를 제거하려면 몇 가지 트릭을 사용해야합니다. 예 : /programming//q/3435355/2037712 또는 http://www.zsh.org/mla/users//2005/msg01132.html
  • 다음을 통해 PATH의 요소를 쉽게 반복 할 수 있습니다. for i ($path) { print $i # or do something else }

마지막으로 다음은 내 구성에서 발췌 한 것입니다.

typeset -U path
path=(/new/path1
      /new/path2
      $path)
export PATH

감사합니다. 실제로 후속 질문이었습니다. path대신을 사용하여 경로를 관리하는 방법을 살펴 보겠습니다 PATH.
jordelver

1
내가 구약이 될까봐 이미 두려워서 기쁘다. Btw. 내가 잊어 버린 또 다른 이점 :으로 요소를 쉽게 반복 할 수 있습니다 for i ($path) { print $i # or do something else }.
mpy
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.