stdout에서 환경 변수 설정

stdout에서 환경 변수 설정

stdout을 '내보내기'로 파이프하는 것과 동일한 작업을 어떻게 수행할 수 있습니까?

배경에는 다음과 같은 환경 변수를 생성하는 비쉘 스크립트가 있습니다.

DATABASE_URL='someurl'
MAIL_KEY='key'
REDIS_URL='redis connection string'

나는 그 출력을 가져와서 다음과 같이 실행하고 싶습니다: generate-env | xargs export

불행하게도 내보내기는 바이너리가 아니며 평가도 아닙니다. 나는 내 출력을 파일에 쓰고 소스와 함께 실행하는 것을 선호하지 않습니다. 이것이 가능합니까?

답변1

당신이 사용할 수있는 eval:

$ set -a
$ eval "$(command_that_generate_output)"
$ set +a
$ sh -c 'printf "%s\n" "$DATABASE_URL"'
someurl

관련 정보