2013-11-01 2 views

답변

3

귀하의 질문이 좀 모호 wget과의 값을 반환하는 방법을

. "wget ​​프로세스의 종료 코드는 무엇입니까?"라고 묻는다면 특수 변수 $?에서 액세스 할 수 있습니다. " 당신이 닫는 괄호를 추가 (첫 번째 줄에 오타가 있지만

[~/tmp]$ wget www.google.foo 
--2013-11-01 08:33:52-- http://www.google.foo/ 
Resolving www.google.foo... failed: nodename nor servname provided, or not known. 
wget: unable to resolve host address ‘www.google.foo’ 
[~/tmp]$ echo $? 
4 

당신이 'wget을'명령의 표준 출력을 요구하는 경우, 그럼 당신이하는 일은, 당신을 것을주는 것입니다 "conf.txt"다음에). 문제는 wget이 기본적으로 stdout에 아무 것도 넣지 않는다는 것입니다. 당신은 자원의 내용을 요구하는 경우

[~/tmp]$ GET=`wget www.google.com 2>&1` 
[~/tmp]$ echo $GET 
--2013-11-01 08:36:23-- http://www.google.com/ Resolving www.google.com... 74.125.28.104, 74.125.28.99, 74.125.28.103, ... Connecting to www.google.com|74.125.28.104|:80... connected. HTTP request sent, awaiting response... 200 OK Length: 18637 (18K) [text/html] Saving to: ‘index.html’ 0K .......... ........ 100% 2.72M=0.007s 2013-11-01 08:36:23 (2.72 MB/s) - ‘index.html’ saved [18637/18637] 

: 당신은 당신이 대화 형으로 wget을 실행할 때 표시되는 진행률 표시 줄 및 메시지는 실제로 당신이 쉘 리디렉션 2>&1를 사용하여 표준 출력을 표준 오류 리디렉션하여 볼 수있는, stderr로 가고있다 wget이 수신되면 wget이 파일 대신 stdout으로 출력을 보내도록 지시해야합니다. wget의 취향에 따라 -O 또는 --output-document과 같은 옵션이 가능하며 명령 줄을 wget -O - <url>으로 구성 할 수 있습니다. 관습에 따라 단일 대시 (-)는 명령 행 옵션에서 stdin과 stdout을 나타냅니다. 따라서 wget이 stdout으로 파일을 보내라고 말하고있는 것입니다.

[~/tmp]$ GET=`wget -O - www.google.com` 
--2013-11-01 08:37:31-- http://www.google.com/ 
Resolving www.google.com... 74.125.28.104, 74.125.28.99, 74.125.28.103, ... 
Connecting to www.google.com|74.125.28.104|:80... connected. 
HTTP request sent, awaiting response... 200 OK 
Length: 18621 (18K) [text/html] 
Saving to: ‘STDOUT’ 

100%[=======================================>] 18,621  98.5KB/s in 0.2s 

2013-11-01 08:37:32 (98.5 KB/s) - written to stdout [18621/18621] 
[~/tmp]$ echo $GET 
<!doctype html><html itemscope="" itemtype="http://schema.org/WebPage"><head> 
<snip lots of content> 
-1

당신은 명령을 실행 한 후

echo $? 

로 종료 코드를 얻을 수 있습니다. 하지만 작동중인/작동하지 않는 다운로드에 반응하고 싶다면 다음을 사용할 수 있습니다.

if wget -q www.google.com 
then 
    echo "works" 
else 
    echo "doesn't work" 
fi 
관련 문제