echo로 입력한 명령이 성공했는지 확인

echo로 입력한 명령이 성공했는지 확인

이것은 매우똑바로단일 명령이 종료 코드 0을 반환하는지 확인합니다. 그런데 명령에 echo를 사용하면 어떻게 해야 할지 잘 모르겠습니다. 예를 들어, 이 경우 테스트하려는 프로그램은 확실히 0이 아닌 종료 코드를 반환하지만 bash는 대신 echo에서 0인 종료 코드를 찾는 것처럼 보입니다.

    if echo "something" > exit 42; then
        echo "OK"
    else
        echo "NOT OK"
    fi

대화형 입력이 필요한 프로그램이 0이 아닌 종료 코드를 반환하는지 여부를 확인할 수 있는 방법이 없습니다. 이 문제를 어떻게 해결하고 내가 에코하고 있는 프로그램의 종료 코드를 얻을 수 있나요?

답변1

bash는 잘 종료되는 것으로 나타났습니다. 문제는 if echo "something" > exit 42; thenexit를 실행하는 것이 아니라 단순히 exit라는 파일에 "무언가"를 인쇄하므로 반환 코드가 실제로 0이라는 것입니다. 이 문제를 해결하려면 "|"를 사용해야 합니다. if echo "something" | exit 42; then예상대로 작동합니다.

관련 정보