RET=$은(는) 무슨 뜻인가요? 이전 답변에서요?

RET=$은(는) 무슨 뜻인가요? 이전 답변에서요?

이 스레드에서:https://superuser.com/questions/569092/how-to-split-the-http-error-code-from-the-contents-in-curl

이 부분은 다음을 의미합니다.


if [[ $RET -ne 0 ]] ; then
    # if error exit code, print exit code
    echo "Error $RET"

이것을 오류 처리로 사용하고 싶지만 400을 반환하면 여전히 else 섹션에 응답하고 코드만 표시하므로 이 조건이 무엇인지 잘 모르겠습니다. https 상태 코드입니까, 아니면 실패한 요청입니까? 좀 더 자세히 설명해주세요.

죄송합니다. 댓글을 추가할 수 없습니다. :( 이것이 새로운 질문의 이유입니다.

답변1

귀하가 언급한 질문을 살펴보면 다음과 같은 내용을 볼 수 있습니다.

OUT=$( curl -qSfsw '\n%{http_code}' http://superuser.com ) 2>/dev/null

# get exit code
RET=$?

if [[ $RET -ne 0 ]] ; then
    # if error exit code, print exit code
    echo "Error $RET"
    ...
else
    ...
fi

내장 $?변수는 이전에 실행한 명령의 반환 코드(이 경우 )가 포함된 특수 변수입니다 curl. 이는 반환 코드입니다.바이너리 에서 curl쉘로 복귀,아니요이 예에서는 HTTP 상태 코드콘솔 출력curl.

OUT= ...따라서 RET=$?해당 줄과 덮어쓰기 사이에 명령이 없으면 $?구현 curl에서는 오류가 발생하더라도 반환 코드를 내보냅니다(이 경우 옵션이 반환을 나타내기 때문에 이상합니다).0400-fcurl22

그건 그렇고, 그 진술에 주목하십시오

OUT=$( curl ... ) 2>/dev/null

말이 안 돼요.

OUT="$( curl ... 2>/dev/null )"

관련 정보