if 문에서 Python 표현식의 출력 사용

if 문에서 Python 표현식의 출력 사용

간단한 Python 표현식의 출력을 if 문의 조건으로 사용하고 싶습니다. 알아요

x=$(python3 -c "print('False')")
echo $x

출력을 생성하므로 False이것이 항상 결과를 생성하는 이유를 이해할 수 없습니다 True.

test () {
    if [ $(python3 -c "print('$1')") ]
    then
        echo "True"
    else
        echo "False"
    fi
}

test False

답변1

$(python3 -c "print('$1')")하나 이니까논리값이 아니며 [ ... ]문자열이 비어 있지 않은지 테스트합니다.

예상대로 작동하도록 하려면 테스트를 다음으로 변경하세요.

if [ "$(python3 -c "print('$1')")" = "True" ]

그런데 test함수 이름을 사용하면 쉘의 내장 함수가 모호해지기 때문에 피해야 합니다 test.

관련 정보