표준 출력에서 ​​환경 변수 설정

표준 출력에서 ​​환경 변수 설정

파이프를 통해 표준 출력을 "내보내는" 것과 동일한 기능을 어떻게 달성할 수 있습니까?

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

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

관련 정보