2016-10-10 2 views
0

bash에서 Python 2.7이 설치되어 있는지 확인하고 싶습니다. SO 검색하는 동안 나는 이걸 발견 : How do I test (in one line) if command output contains a certain string?string이 bash에서 "python --version"명령의 일부인지 확인하는 방법은 무엇입니까?

배쉬에서, 내가 가진이 :

python --version 
Python 2.7.11 

그래서 나는이 시도 : 나는 예상대로 나는 이상한 발견

[[ $(python --version) =~ "2.7" ]] || echo "I don't have 2.7" 
Python 2.7.11 
I don't have 2.7 

... 그 일을.

나는 또한이 시도 :

Python 2.7.11 
I don't have 2.7 

흠 :

if [[ $(python --version) =~ *2.7* ]] 
    then 
     echo "I have 2.7" 
    else 
     echo "I don't have 2.7" 
fi 

이 ...로 이어지는! 내가 뭘 잘못하고 있니?

답변

1

python --version 명령 출력을 stderr으로 출력합니다.

당신은 stderr 사전 테스트에 stdout에 리디렉션 할 수 있습니다 :

if [[ $(python --version 2>&1) =~ 2\.7 ]] 
    then 
     echo "I have 2.7" 
    else 
     echo "I don't have 2.7" 
fi 
1

당신은 그것을 다음과 같은 방법을 수행 할 수 있습니다. 당신은 pythonwhich 명령으로 설치되어 있는지 먼저 확인하고 python --version

if which python > /dev/null 2>&1; 
then 
    if [[ $(python --version 2>&1) == *2\.7\.11 ]]; then 
     echo "Python version 2.7.11 is installed." 
    fi 
else 
    echo "No Python executable is found." 
fi 
의 출력을 캡처 할 수 있습니다
관련 문제