2013-06-21 1 views
3

파이썬 스크립트를 호출하는 bash 스크립트가 있습니다. 처음에는 변수 하나를 반환했지만 괜찮 았지만 이제는 두 개의 변수를 반환하라는 지시를 받았습니다. 하나 이상의 변수를 반환하는 명확하고 간단한 방법이 있는지 궁금합니다.파이썬에서 bash로 여러 변수를 반환하는 방법

archiveID=$(python glacier_upload.py $archive_file_name $CURRENTVAULT) 

, 나는 bash는

print archive_id['ArchiveId'] 
archive_id['ArchiveId'] 

은 일반적으로 당신이 여러 변수를 반환하는 파이썬에서 return 문을 사용할 수 있습니다 알고있는 bash는 스크립트에 아카이브 ID를 반환에서 확인 전화인가 그러나 그것은 단지 변수를 반환하는 것으로 발견 된 방식의 스크립트입니다. 나는 그것을 호출 할 수있는 함수로 만들지 만 심지어 그때까지, 내가 돌아갈 여러 변수를 어떻게받을 수 있습니까?

답변

5

파이썬 스크립트에서 한 줄에 하나씩 변수를 출력하십시오.

파이썬

print "foo bar" 
print 5 

배쉬

#! /bin/bash 

python main.py | while read line ; do 
    echo $line 
done 

최종 해결책 : 그런 다음 bash는 스크립트에서, 한 줄에 하나의 변수를 읽어

감사 기욤! 당신은 내게 영혼의 시작점을 알려 줬어. 나는 다른 사람들을 위해 나의 해결책을 게시 할 것이다.

#! /bin/bash 

array=() 
while read line ; do 
    array+=($line) 
done < <(python main.py) 
echo ${array[@]} 

은 내가 here

+0

당신은 또한''맵 파일 -t 배열 <<(파이썬 main.py를) 말할 수 필요한 솔루션의 나머지 부분을 발견 - 떠들썩한 프롬프트에서 '도움말 mapfile' 참조 . –