どうすればwget印刷エラーが発生しますか?
デフォルトの動作では、進行状況バーと多くのものが表示されます。
--no-verboseバージョンでは、ダウンロードされたファイルごとに1行が印刷されますが、これは不要です。
--quietオプションを指定すると完全に静かになり、エラーが発生しても何も出力されません。
エラーを表示するモードはありますか?
この質問には非常に良い答えがあります。必ず確認してください。しかし、私がやったことはこれです。
wget [wget options] 2>&1 | grep -i "failed\|error"
すべてのエラーがどのように表示されるかを推測することなく、curlを使用します。
[wizard@laptop ~] curl -s -S http://www.google.coccm/ > /dev/null && echo "TRUE"
curl: (6) Couldn't resolve Host 'www.google.coccm'
[wizard@laptop ~]$ curl -s -S http://www.google.com/ > /dev/null && echo "TRUE"
TRUE
-s /-silent
Silent mode. Don’t show progress meter or error messages. Makes Curl mute.
-S /-show-error
When used with -s it makes curl show error message if it fails.
そして、何らかの理由でstdoutにstderrが必要な場合。
curl -s -S http://www.google.coccm/ 2>&1 1> /dev/null
そのためのオプションが表示されません。エラーが何であるかを知っている必要がありますか?エラーが発生したかどうかを知る必要があるだけの場合は、終了ステータスを使用できます。
if ! wget -o /dev/null www.google.com/flasfsdfsdf; then
echo 'Oops!'
fi
または多分:
if ! wget -o logfile www.google.com/flasfsdfsdf; then
cat logfile
fi
そして、あなたが気になりたいなら、あなたは猫をgrepコマンドに変えることができます...
標準出力を/dev/null
にリダイレクトしますが、エラー出力は選択したシェルに保持します。
Bashではこれは次のようになります。
wget [wget options] > /dev/null
編集:したがって、wget
は正しく動作しません。すべてのエラーに「エラー」という単語が含まれている場合は、grep
にパイプできます。
wget [wget options] 2>&1 | grep -i "error"
OUT=`wget --no-verbose -O /tmp/a http://example.com/ 2>&1` || echo $OUT
動作します。ただし、出力ファイルは常に切り捨てられるため、必要な場合とそうでない場合があります。
カールが良いです:
curl --fail --silent --show-error -o /tmp/a http://example.com
エラーが発生した場合、出力ファイルは変更されません。
wget
はすべてのメッセージをstderr
に出力するため、それをgrepにパイプする前にリダイレクトを使用する必要があります。
wget [options] 2>&1 | grep "^wget:"
これは、wget
がエラー行を「wget:」で開始することを前提としています。