답변:
curl
대신 시도하십시오 :
curl -fsS $url -o $file
긴 버전 :
curl --fail --silent --show-error $url --output $file
그놈 사용자는 Gvfs를 시도 할 수 있습니다 :
gvfs-cp $url $file
--fail
합니까? HTTP 오류를 stderr로 가고 싶은 것으로 취급하는 것이 합리적이지 않습니까?
--fail
와 의 조합입니다 --show-error
.
더 나은 답변을 얻을 수 없으면 해킹 해킹 :
wget {url} 2>/tmp/err.log || cat /tmp/err.log; rm /tmp/err.log
(2> /tmp/err.log는 stderr를 tmp 파일로 경로 재 지정합니다. wget이 0을 성공하면 || 단락이 발생하고 그렇지 않으면 오류 로그 값이 인쇄됩니다)
error_log=$(wget -nv example.net 2>&1) || echo $error_log
더 우아한 솔루션이지만 여전히 서투른입니다.
현재 모든 wget 출력이 stderr로 이동하기 때문에이 '우아한 방법'을 해결하려면 wget 소스를 패치해야합니다.
wget 소스 디자인은 오류 메시지가 아니라 오류 메시지가 아닌 간단한 메시지 분할이 아니라 메시지 간의 상세 수준 차이를 나타냅니다.
이 http://savannah.gnu.org/bugs/?33839 에 대한 공개 버그가 있으며 오래된 토론도 있습니다. 다음은 제안 된 패치 http://www.mail-archive.com/wget%40sunsite.dk/msg03289.html 이며 여기에 대한 http://www.mail-archive.com/wget에 대한 Hrvoje Niksic의 답변이 있습니다 . % 40sunsite.dk / msg03330.html .
그 외에도 Foon의 덜 우아한 솔루션에 대한 의견에서 제안한 좋은 솔루션이 있습니다.