[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[debian-users:57886] Re: How bash script can know wget result ?



At Tue, 1 Dec 2015 07:54:04 +0900,
tanimura wrote:
> # それにしても、Capital letter の head の存在すら知りませんでした。

  HEADはlibwww-perlのリファレンス実装で、他にGET, POSTもあります。

 wgetに関しては、manよりもinfoを読んだ方が良いです。info wgetのExit
Statusの項目を見ると、いくつか気になる記述が並んでいます。

8
     Server issued an error response.
(略)
   In versions of Wget prior to 1.12, Wget's exit status tended to be
unhelpful and inconsistent. Recursive downloads would virtually always
return 0 (success), regardless of any issues encountered, and
non-recursive fetches only returned the status corresponding to the
most recently-attempted download.

  たとえば wget -q --spider http://localhost/no-such-file 等を実行する
とちゃんと8を返します。一方で、ftpに対し--spiderではなく実際に取得を試
みると同じように8を返しました。

$ wget -q -O /dev/null 'ftp://ftp.gnu.org/gnu/binutils/binutils-x.xx.x..tar.bz2'
 echo $?
8

  ソースを追いかけて行った結果、ftpでspiderモードの時はファイルの存在の
結果にかかわらずサーバーステータスは正常であったとして処理するようになっ
ているようです(src/ftp.cのgetftp(), if (opt.spider)の辺り)。これはバグ
なのでは…同様の報告も見当たりませんし、git masterでも状況は同じだった
ので、バグ報告しておきました。

  -O /dev/nullだと実際に取得を試みるのであまりよろしくないです。