
파이프를 통해 표준 출력을 "내보내는" 것과 동일한 기능을 어떻게 달성할 수 있습니까?
배경에는 다음과 같은 환경 변수를 생성하는 비쉘 스크립트가 있습니다.
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