간단한 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
.