[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