シェルスクリプトから行を読みながら - ループを停止する方法は?

シェルスクリプトから行を読みながら - ループを停止する方法は?

ここで動作するチュートリアルを読んだ。

while read line
do 
wget -x "http://someurl.com/${line}.pdf" -o ${line}.pdf
done < inputfile

ただし、スクリプトは引き続き実行され、$line には値がありません。次の行が空の場合、または「信号」という単語が表示された場合は、スクリプトが停止するコードをどのように変更できますか?

ご協力ありがとうございます

ベストアンサー1

以下は、長さ値0でwhileループを停止する方法ですline

#!/usr/bin/bash
while read line
do
    if [[ -z $line ]]
    then
         exit
    fi
    wget -x "http://someurl.com/${line}.pdf" 
done < inputfile

実際の問題は、「http」の前の一致しない二重引用符文字または「inputfile」の末尾の一致しないバックティック文字にある可能性があると思います。私のコード例を試す前に、参照をクリーンアップする必要があります。

おすすめ記事