[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だと実際に取得を試みるのであまりよろしくないです。