program story

피쉬 쉘에서 환경 변수를 설정하는 방법

inputbox 2020. 10. 23. 07:51
반응형

피쉬 쉘에서 환경 변수를 설정하는 방법


누군가가 물고기 껍질에 환경 변수를 설정하는 올바른 방법이 무엇인지 말해 줄 수 있습니까?

내 .config / fish / config.fish 파일에는 환경 변수를 설정하는 기능이 있습니다.

function setTESTENV
      set -x BROKER_IP '10.14.16.216'
      set -x USERNAME 'foo'
      set -x USERPASS 'bar'
end 

명령 프롬프트에서 입력 하고 명령 줄에서 setTESTENVa env수행하면 이러한 정보가 표시되지 않습니다.


선언하는 변수는 함수 내의 로컬 범위에 유지됩니다.

사용하다:

set -g -x

여기 " g"는 글로벌 용입니다.


범용 변수 사용

현재 컴퓨터의 모든 현재 사용자 피쉬 인스턴스간에 변수를 공유 하고 셸 을 다시 시작할 때까지 유지 해야하는 경우 -U또는 --universal다음 을 사용해야합니다 .

set -Ux FOO bar

setwith 사용 -g하거나 --global셸 인스턴스간에 지속적으로 변수를 설정하지 않습니다.


물고기의 환경 변수

@JosEduSol의 답변이 올바르지 않고 OP 문제를 해결하는 데 도움 이되는 -g반면, 범위를 전역으로 설정 -x하고 지정된 환경 변수를 하위 프로세스로 내보내는 것임을 추가하고 싶습니다 .

위의 실패 이유는 @cfpete가 함수 내부에 env 변수를 설정하고 기본 범위가 해당 함수에 국한되기 때문입니다.


다른 옵션은 다음을 실행하는 것입니다.

export (cat env_file.txt |xargs -L 1)

env_file.txt에는 형식의 행이 포함됩니다. VAR=VALUE

이것은 다른 쉘 및 도구에서 지원하는 형식으로 변수를 유지하는 이점이 있습니다.

참고 URL : https://stackoverflow.com/questions/25632846/how-to-set-environment-variables-in-fish-shell

반응형