2012-08-23 2 views
5

GNU 병렬 환경 변수를 상속하고 싶습니다. 나는 여러 개의 '스크립트'(실제로는 GNU 병렬과 함께 사용하도록 설계된 명령 목록)를 가지고 있습니다. 각 명령 행마다 서로 다른 외부 프로그램을 호출합니다. 그러나 이러한 외부 프로그램 (내 통제 범위를 벗어남)은 실행되기 전에 여러 환경 변수를 설정해야합니다.GNU 병렬로 환경 변수 상속

로컬로 설정/내보내기가 도움이되지 않는 것 같아요.이 정보를 프로필에 추가 할 수있는 방법이 없습니다.

설명서에이 내용이없는 것처럼 보이며 유사한 SO 페이지에서는 스크립트에서 명령을 래핑하는 것이 좋습니다. 그러나 이것은 비현실적인 해결책처럼 보입니다. 현재 환경을 내보내거나 스크립트에서 필수 변수를 지정하는 방법이 있습니까?

감사합니다.

답변

6

이 나를 위해 작동합니다

FOO="My brother's 12\" records" 
export FOO 
parallel echo 'FOO is "$FOO" Process id $$ Argument' ::: 1 2 3 

당신은 쉘 확장을위한 변수를 인용 할 필요가 (SSH를 통해) 원격 연결을 위해 일하려면. parallel --shellquote 당신이 그렇게 도움이 될 수 있습니다

parallel -S server export FOO=$(parallel --shellquote ::: "$FOO")\;echo 'FOO is "$FOO" Process id $$ Argument' ::: 1 2 3 

을 그 문제가 해결되지 않으면 작동하지 않습니다 예를 나타내는 고려하시기 바랍니다.

- 편집 -

버전에 도입 --env에서 봐 20,121,022

- 편집 -

env_parallel 봐 20160322.

에 도입