[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[debian-users:57882] Re: How bash script can know wget result ?
Masakazu Takahashiさん、お応ありがとうございます。
ご指摘のようにしているのですが、
wget の結果は "File exist" でも "No shuch file" でも result 値は同じで '0' です。
下記以外の場合にも、result 値で判断できないことがありました。
下記に詳細を示します。
On 15/11/30 13:18, Masakazu Takahashi wrote:
こんにちは。
2015-11-30 9:33 GMT+09:00 tanimura <tanimura@xxxxxxxxxxxxxxx>:
bash script 内で
wget -q --spider <URL/file>
の<URL/file> 部分が正しいか否かの判定をしたいのですが、
実行直後の "$?"は正しくない部分があっても '0' が返ることがあり、
wget の stderr の文字列内を grep するには、ケースが多過ぎて不安です。
URL の正しいバリデーション方法や $? が正しくなくなる理由は、ここでは
置いておき、一般論として。
wget の終了ステータス($? 相当)をチェックするのであれば、
if wget -q --spider <URL/file>
then
# 正しい場合の処理
else
# 正しくない場合の処理
fi
のように書くのでいかがでしょうか。
--- 下記 ---
wget -q -spider ftp://ftp.gnu.org/gnu/binutils/binutils-x.xx.x..tar.bz2'
wget -q -spider ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
の結果を比較すると以下のようになります。result 値はどちらも '0' です。
-----
No such file 'binutils-x.xx.x.tar.bz2'.
0K ........ 908K=0.009s
Removed '.listing'.
File 'binutils-2.25.1.tar.bz2' exists.
-----
LIST ... done.
0K ........ 260K=0.03s
Removed '.listing'.
No such file 'binutils-x.xx.x.tar.bz2'.
以下は、実行時の stderr の diff -u です。
--------------------------------------------------------------------
---wget -q --spider 'binutils-2.25.1.tar.bz2' と
---wget -q --spider 'binutils-x.xx.x.tar.bz2' の stderr の diff
---------------------------------------------------------------------
1,3c1,3
< converted 'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2'
(ANSI_X3.4-1968) ->
'ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2' (UTF-8)
< --2015-11-30 13:52:08--
ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2
< => 'binutils-2.25.1.tar.bz2'
---
> converted 'ftp://ftp.gnu.org/gnu/binutils/binutils-x.xx.x.tar.bz2'
(ANSI_X3.4-1968) ->
'ftp://ftp.gnu.org/gnu/binutils/binutils-x.xx.x.tar.bz2' (UTF-8)
> --2015-11-30 13:50:20--
ftp://ftp.gnu.org/gnu/binutils/binutils-x.xx.x.tar.bz2
=> 'binutils-x.xx.x.tar.bz2'
9,10c9,11
< ==> SIZE binutils-2.25.1.tar.bz2 ... 24163561
< ==> PASV ... done. --2015-11-30 13:52:11--
ftp://ftp.gnu.org/gnu/binutils/binutils-2.25.1.tar.bz2
---
> ==> SIZE binutils-x.xx.x.tar.bz2 ... done.
>
> ==> PASV ... done. --2015-11-30 13:50:23--
ftp://ftp.gnu.org/gnu/binutils/binutils-x.xx.x.tar.bz2
15c16
< 0K ........ 908K=0.009s
---
> 0K ........ 260K=0.03s
19c20
< File 'binutils-2.25.1.tar.bz2' exists.
---
> No such file 'binutils-x.xx.x.tar.bz2'.
以上
-- Tanimura