
私のカール出力を次のように記録しようとしています。 (10秒ごとにランダムに生成されます)
<RTW>
<RESULT>{ "Result": { "something1": 707, "something2": { "array": ["95", "51", "65", "33", "95", "109", "87", "37", "49", "86"] } } }</RESULT>
<DISTRICT>{"0000":"City"}</DISTRICT>
</RTW>
私のコマンドは次のとおりです。sh /path/to/script.sh 2>&1 | tee /path/to/logfile.txt
問題は、生の出力を記録するのではなく、いくつかのダウンロード統計を記録することです(実行中の端末ウィンドウにも表示されます)。ダウンロード統計で追跡される内容は次のとおりです。
% 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 249 0 204 100 45 125 27 0:00:01 0:00:01 --:--:-- 125
100 249 0 204 100 45 77 17 0:00:02 0:00:02 --:--:-- 77
など..
カール(stdoutと仮定)でどのようにログインしますか?2>&1
セクションなどの数字を変更してみました。
スクリプトのマイカールコマンドは次のとおりです。
curl -k --data "objectID=ID&username=username&password=passwd" url -H "Header"
答え1
自動的に進行しない統計には()オプションを使用できますcurl
(エラーメッセージが表示されます)。-s
--silent
curl -s ...
からman curl
:
-s、--沈黙
無音または静かなモード。進行状況インジケータやエラーメッセージは表示されません。ミュートカール。リダイレクトしない限り、要求されたデータは端末/標準出力に出力され続けます。
答え2
| logger
カールコマンドの最後に追加されました。
答え3
カールの出力を取得する方法は、対応する-s
フラグを使用してカールの出力を変数に割り当てることです。
提供した例を使用して、次のように変更します。
RES="$(curl -k --data "objectID=ID&username=username&password=passwd" url -H "Header")"
#print the result
echo "$RES"