私が走るとき
curl example.com > example.html
端末で私が取得する進行状況インジケータは次のとおりです。
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0
100 1256 100 1256 0 0 1950 0 --:--:-- --:--:-- --:--:-- 1947
100 1256 100 1256 0 0 1950 0 --:--:-- --:--:-- --:--:-- 1947
~によるとhttps://curl.se/docs/manpage.htmlこのメッセージが表示されるには、カールstdoutをファイルにリダイレクトする必要があります。 「HTTP POST または PUT 要求のプログレスメーターを希望する場合は、シェルリダイレクト (>)、--output などの機能を使用して応答出力をファイルにリダイレクトする必要があります。」
curl example.com 2> progress.txt
にデータはありませんprogress.txt
。だから私は走らなければならない
curl example.com > example.html 2> progress.txt
カール標準出力をファイルにリダイレクトせずに進行状況インジケータにアクセスするには?
答え1
データを別のプログラムに転送すると、進行状況インジケータが表示されます。基本
curl example.com | cat
動作しますが、結果が長くなると、ドキュメントに記載されている問題が発生します。
それ障害を負うプログレスメーター、そうでなければ出力ミキシングプログレスメーターと応答データが混乱します。
これを防ぐにはsponge
(fromその他のユーティリティ、ほとんどのディストリビューションで利用可能):
curl example.com | sponge