ダイアログボックスのカール進行

ダイアログボックスのカール進行

ダイアログウィンドウにカールの進行状況を正しく表示するには?

curl http://mysite.corp/image/root_21.tar.bz2 | tar -C /mnt/dest/ -jxf -

ここに画像の説明を入力してください。

このコマンドを試しましたが、ご覧のように正しく表示されません。

curl -f -x '' -L http://mysite.corp/image/root_21.tar.bz2 | tar -C /mnt/dest -xjpf - --exclude='dev/*' | dialog --backtitle "dialog" --stderr --title 'Linux Image' --textbox /tmp/log 30 80

ここに画像の説明を入力してください。

このコマンドは私にはほとんど効果がありましたが、各行に新しい行の進行状況を表示するのではなく、独自に上書きしたいと思います。デフォルトでは、元のコマンドの表示と同じですが、ダイアログボックスに表示したいと思います。

(curl -f -x '' -L http://mysite.corp/image/root_21.tar.bz2  | tar -C /mnt/dest -xjpf - --exclude='dev/*' ) 2>&1 | dialog  --progressbox 20 120

ここに画像の説明を入力してください。

答え1

--progressbox次のダイアログボックスオプションを使用できます。

(curl ... | tar ... ) 2>&1 | dialog --progressbox 30 120

2>&1curlとのstderr出力をtar標準入力にリダイレクトします。つまり、パイプをdialog

行の書き換え(制御文字:CR '\ r'(キャリッジリターン))はサポートされていないため、追加の行dialogから各進行の変更を取得します。

答え2

カールを使用してダウンロードしてリダイレクトする場合アスファルト、簡単な進行状況を印刷できます。

--checkpoint[=NUMBER]NUMBER 個のレコードごとに進行メッセージを表示

--checkpoint-action=ACTION 各チェックポイントで ACTION を実行します。

たとえば、以下は10個のチェックポイントごとにポイントを印刷しながらgzファイルをダウンロードして抽出します。

curl -s -L $url | tar -xz --checkpoint=.10

進行中の詳細については、次の手順を実行してください。

  • カールの「自動」出力を望まない場合は、カールコマンドから「-s」を削除してください。
  • アーカイブから抽出されたファイルのリストを印刷するには、tarコマンドに「-v」を追加します。

関連情報