표준 출력 파이프에서 여러 환경 변수를 설정하는 방법

표준 출력 파이프에서 여러 환경 변수를 설정하는 방법

일부 env 출력을 제공하는 파이프된 쉘 명령이 많이 있습니다. 체인에 추가 명령을 추가할 수 있도록 환경 변수로 설정하고 싶습니다.

Kevins-MBP:ops kevzettler$ eb printenv | tail -n +2 | sed "s/ //g"
NODE_ENV=staging
RDSPassword=changme
RDSHost=sa1c7quehy7pes5.lolol.us-east-1.rds.amazonaws.com
RDSUsername=derp

답변1

다음을 수행할 수 있습니다.

source <(eb printenv | tail -n +2 | sed 's/ //g; s/^/export /')
your_next_command_that_uses_those_env_vars

시험:

  • 예제 변수 정의를 인쇄하는 함수 정의

    function eb {
    echo "
    NODE_ENV=staging
    RDSPassword=changme
    RDSHost=sa1c7quehy7pes5.lolol.us-east-1.rds.amazonaws.com
    RDSUsername=derp"
    }
    
  • 파이프라인이 무엇을 생성하는지 확인하려면 이를 호출하세요.

    $ eb printenv | tail -n +2 | sed 's/ //g; s/^/export /'
    export NODE_ENV=staging
    export RDSPassword=changme
    export RDSHost=sa1c7quehy7pes5.lolol.us-east-1.rds.amazonaws.com
    export RDSUsername=derp
    
  • 해당 출력을 얻고 현재 셸과 새 셸을 테스트하여 내보냈는지 확인하세요.

    $ source <(eb printenv | tail -n +2 | sed 's/ //g; s/^/export /')
    $ echo $NODE_ENV
    staging
    $ sh -c 'echo $NODE_ENV'
    staging
    

관련 정보