2014-09-02 2 views
2

gnu 병렬을 통해 디렉토리의 각 요소에 대해 bash 함수를 실행해야합니다. 이 함수에 대해 evn 변수에 액세스해야합니다. 나는 그것을 어떻게 통과시킬 수 있는가? 예를 들어 쉘 스크립트의 코드를 따르십시오. 변수 DIRS =/폴더/로그가 있습니다. readfile_에 'DIRS'를 어떻게 전달합니까? 미리 감사드립니다.루프를 gnu와 병렬로 실행하고 변수를 전달하십시오.

export SHELL=$(type -p bash) 
function readfile_ {do something} 

export -f readfile_ 
ls -d */ | grep -v errlogs | parallel readfile_ 

답변

1

알았어. 원격으로 명령을 실행하면

에만 필요합니다 --env` http://www.gnu.org/software/parallel/parallel_tutorial.html#Transfer-environment-variables-and-functions

DIRS=/folder/log 
export DIRS 
ls -d */ | grep -v errlogs | parallel --env DIRS readfile_ 
+0

'를 참조하십시오. '수출'은 그렇지 않으면 충분해야한다. 20140822 버전과'env_parallel' 함수를 사용한다면'export'를 무시할 수도 있습니다 : www.gnu.org/software/parallel/man.html (--env) –

+0

@OleTange 감사합니다. 다음과 같이 : parallel --env _ readfile_. 이 줄 앞에 "parallel --record-env"가 필요합니다. – douyou

관련 문제