![stdout에서 환경 변수 설정](https://rvso.com/image/89148/stdout%EC%97%90%EC%84%9C%20%ED%99%98%EA%B2%BD%20%EB%B3%80%EC%88%98%20%EC%84%A4%EC%A0%95.png)
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