Bashスクリプトでwgetを使用してシリーズをスキップする一括ダウンロード

Bashスクリプトでwgetを使用してシリーズをスキップする一括ダウンロード

最後に確認したファイルが存在しない場合は、bashスクリプトでフォルダをスキップするためにwgetを使用してファイルを一括ダウンロードする方法は?

サンプルコードは次のとおりです。

#!/bin/bash
# Script to download Reports @ brazil.crl.edu/bsd/bsd
# Url : start @ http://brazil.crl.edu/bsd/bsd/u2038/ ends: /u2176
# There are less than 1000 files per address.
base1='http://brazil.crl.edu/bsd/bsd/u'
for i in {2038..2176};do 
    for s in {000001..001000}; do
        wget -r $base1$i'/'$s'.tiff'
        if [ $? -eq 0 ]; then
            break
        fi
    done
done

最初のファイルのみをダウンロードします。誰でも助けることができますか?

ベストアンサー1

この質問を「解決済み」とマークできるように、私の意見に対する答えは次のとおりです。

あなたのクエリ

if [ $? -eq 0 ]

確認中の終了状態。これは「問題が発生しない」を意味します(終了ステータスセクション0に従って)。man wgetしたがって、ifクエリを次に反転します。

if [ $? -ne 0 ]

つまり、「何か問題が発生した場合」問題は解決されます。

終了ステータスは、0成功したコマンドを実行するための基準です。

bash||ifクエリは、コマンドの終了が成功したことを確認する演算子を使用して減らすことができます。

wget -r $base1$i'/'$s'.tiff' || break

おすすめ記事