오류를 인쇄하지만 다른 방법은 없습니다.


27

어떻게 인쇄 오류가 발생합니까?

기본 동작에서는 진행률 표시 줄과 많은 것들이 표시됩니다.

--no-verbose 버전에서는 여전히 다운로드 한 파일 당 한 줄을 인쇄합니다.

--quiet 옵션은 오류가 발생하더라도 아무 것도 인쇄하지 않고 완전히 조용하게 만듭니다.

오류를 인쇄하는 모드가 있습니까?

답변:


17

이 질문에는 매우 좋은 답변이 있습니다. 확인하십시오.하지만 내가 한 일은 다음과 같습니다.

wget [wget options] 2>&1 | grep -i "failed\|error"

이것은 16.04 우분투 bash와 함께 나를 위해 일한 유일한 대답이었습니다.
Ligemer 2016 년

17

컬을 사용하십시오. 모든 오류가 어떻게 보일지 추측하지 마십시오.

[wizard@laptop ~] curl -s -S http://www.google.coccm/ > /dev/null && echo "TRUE"
curl: (6) Couldn't resolve host 'www.google.coccm'
[wizard@laptop ~]$ curl -s -S http://www.google.com/ > /dev/null && echo "TRUE"
TRUE

-s /-자동

Silent mode. Don’t show progress meter or error messages. Makes Curl mute.

-S /-쇼 오류

When used with -s it makes curl show error message if it fails.

그리고 어떤 이유로 stdout에 stderr가 필요한 경우.

curl -s -S http://www.google.coccm/  2>&1 1> /dev/null

1
불행히도 이것은 전형적인 HTTP 오류를 처리하지 않지만 (예 : 404 오류는 이런 식으로 억제됩니다), 해키 wget 메소드는 처리합니다.
process91

공감 : 귀하의 제안은 그럴듯하지만 질문에 대한 답은 아닙니다.
Stephan Richter

서버가 오류 코드를 반환하면 오류 메시지를 표시하려면 -f /
-fail을 추가하십시오

curl에 대한 질문이거나 curl에 wget과의 기능 패리티가있는 경우 큰 대답이 될 수 있습니다. 불행히도 두 경우 모두에 해당되지 않습니다.
dfc

4

옵션이 보이지 않습니다. 오류가 무엇인지 또는 오류가 발생한 경우 알아야합니까? 오류가 있는지 알아야하는 경우 종료 상태를 사용할 수 있습니다.

if ! wget -o /dev/null www.google.com/flasfsdfsdf; then
    echo 'Oops!'
fi

아니면 :

if ! wget -o logfile www.google.com/flasfsdfsdf; then
    cat logfile
fi

그리고 화려하고 싶다면 고양이를 grep 명령으로 바꿀 수 있습니다 ...


3
더 간단한 방법 : wget -o logfile <url> || 고양이 로그 파일
kolypto

오류 메시지를 표시하는 것 외에도 오류를 종료하거나 다른 작업을 수행하려고하므로 더 간단한 방법이 더 나쁩니다.
Sam Watkins

2

표준 출력을로 리디렉션 /dev/null하되, 선택한 쉘에서 오류 출력을 유지하십시오.

bash에서 이것은 다음과 같습니다.

wget [wget options] > /dev/null

편집 : 그래서 wget무례한 행동. 모든 오류에 "error"라는 단어가 포함되어 있으면grep

wget [wget options] 2>&1 | grep -i "error"

wget은 stderr에 모든 것을 보내는 것 같습니다.
pupeno

grep출력 오류 만 사용 하는 다른 옵션을 추가했습니다
Ben S

stderr도움없이 파이프를 통과하지 않습니다.
추후 공지가있을 때까지 일시 중지되었습니다.

1
결국 나는 wget [wget 옵션] 2> & 1 | grep -i "실패 \ | 오류"
pupeno


1
OUT=`wget --no-verbose -O /tmp/a http://example.com/ 2>&1` || echo $OUT

공장. 그러나 출력 파일은 항상 자르거나 원하지 않을 수도 있습니다.

컬이 더 좋습니다 :

curl --fail --silent --show-error -o /tmp/a http://example.com

오류가 발생하면 출력 파일을 수정하지 않습니다.

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.