2012-05-07 3 views
3

쉘 명령을 사용하여 쉘 스크립트를 사용하여 출력을 변수에 저장하려고합니다. 그 코드가 잘 작동쉘 스크립트는 출력에 변수를 저장할 수 없습니다.

out=`ls -l` 
print $out 

을, 그리고 난 다른 쉘 명령에 사용할 수 있습니다,하지만 난 '파이썬 --version'을 할 때 파이썬 버전을 확인하려면 : 그래서 나는이 같은 역 따옴표를 사용합니다. 나는 이상한 문제가있어. 역 따옴표는 "python --version"명령에 대해 다른 명령과 잘 작동하는 동안 작동하지 않으며 출력을 화면에 인쇄하고 변수 $ out에 아무 것도 저장하지 않습니다. 그래서 내가 할 경우 :

out =`python --version` 
print "my python version is "$out 

결과 :

Python 2.6.1 
my python version is 

도 내가 역 따옴표를 대체하는 $()를 사용하려고,하지만 운. 어떤 생각?

out =`python --version` 

가되어야한다 :

+1

박택은 그것을하는 오래된 방법입니다. $() 사용은 훨씬 더 읽기 쉽습니다. – OlivierLi

답변

10

당신은 로그인 할 등호 앞에 공백이

out=`python --version` 

업데이트

당신이 필요하므로 또한 파이썬 출력 버전 문자열은 stderr로 표준 출력으로 리디렉션 :

out=`python --version 2>&1` 
+2

perfecto, Thanx a lot. 이제는 잘 작동합니다. 당신이 말했듯이, 문제는 python이 stderr로 그것을 출력한다는 것입니다. out = \'python --version 2> & 1 \'가 작동합니다! 고맙습니다. – andio

+0

전 커팅 후크를 쓰고 있었는데 출력이 저장되지 않은 이유를 알 수 없었습니다. 2> 1 트릭이 효과적이었습니다! 감사! – NateW