2017-11-26 2 views
1

스칼라 응용 프로그램 내에서 일부 변수를 설정하는 스크립트 (예 : setenv.sh)를 실행하고 싶습니다. 그런 다음 응용 프로그램에서이 변수를 다시 읽고 나중에 처리하기를 원합니다. 다음은 내 샘플 setenv.sh 파일입니다.스칼라 : 셸 스크립트에 정의 된 변수 읽기

#!/bin/bash 

TEST=0000 

다음은 있지만 작동하지 않습니다. 나는 많은 대안을 시도했지만 실패했다.

Seq("bash", "-c", "source setenv.sh && env").!! 

위의 명령은 여전히 ​​이전 환경 변수를 제공하며 TEST를 볼 수 없습니다.

목표는 setenv.sh 파일의 모든 변수를로드하고 응용 프로그램에서 사용하는 것입니다.

답변

1

쉽지 않습니다. 셸 프로세스를 여는 것을 명심하십시오. 그 과정은 설정을 본 다음 종료됩니다.

명시 적으로 해당 값을 내보내려고 시도하십시오.

또는 stdout에 값을 인쇄하고 해당 출력을 스칼라가 구문 분석하도록 할 수 있습니다.

+0

현재 setenv.sh 스크립트를 수정하지 않고 해결책을 찾고 있습니다. setenv.sh를 실행하고 상위 프로세스에서 새 프로세스의 환경 변수를 어떻게 얻을 수 있습니까? –

+0

다시 : 현재 귀하의 스크립트는 상위 프로세스에 영향을주는 작업을 수행하지 않습니다. 스크립트를 변경하지 않으면 문제가 발생합니다. – GhostCat

관련 문제