1
から番号を取得:bashの - コマンドから<em>CHK</em>ファイルに記録された典型的な出力ストリーム
wget -O - http://website/file > /dev/null 2>chk &
のようなものです:
0K .......... .......... .......... .......... .......... 0% 143K 62s
50K .......... .......... .......... .......... .......... 1% 433K 41s
100K .......... .......... .......... .......... .......... 1% 1.20M 30s
150K .......... .......... .......... .......... .......... 2% 259K 31s
200K .......... .......... .......... .......... .......... 2% 83.2M 24s
...
8800K .......... .......... .......... .......... .......... 98% 260K 1s
8850K .......... .......... .......... .......... .......... 98% 329K 0s
8900K .......... .......... .......... .......... .......... 99% 433K 0s
8950K .......... .......... .......... .......... ......... 100% 331K=31s
2017-01-13 13:16:59 (288 KB/s) - written to stdout [9215609/9215609]
ファイルが更新され、行の後の行、全体のダウンロードプロセス中に。 さて、私はパーセンテージだけを取得する必要があります:0,1,2 ... 99とそれ以上のものはありません。私は以下のように、bashスクリプトに同じことを行う必要があるとき
tail -n 5 chk | tail -n 1 | colrm 1 63 | cut -d '%' -f 1
問題が発生:
#!/bin/bash
# Test script for getting the percentage number from 'wget' output
i=0
wget -O - http://website/file > /dev/null 2>chk &
sleep 1
while (($i < 90))
do
i=`tail -n 5 chk | tail -n 1 | colrm 1 63 | cut -d '%' -f 1`
echo $i
done
ない完全があっても
次のスクリプトは、仕事をしますスクリプトは必要なファイルの取得を開始し、chkファイルを書き出しますが、エラーメッセージで停止します。
line 9: ((: < 90 : syntax error: operand expected (error token is "< 90 ")
[[]]、引用符を使って試しましたが、うまくいきません。
もっと良い仕事をするためのここのアイデアはありますか? wgetの、です:whiptailおよびGNUと
ありがとうございました。ポイントは、私が探していた数字は、whiptail - ゲージのダイアログスクリプトで処理され、進捗バーを作るのに数字が必要だということです。 – MAXIM
私は自分の答えを更新しました。今度の出力では、%の後に数字が表示されません。 – Cyrus
素晴らしい!あなたの答えに多くの感謝!スクリプトの仕組みを段階的に説明できますか? whiptailで実装できるように--Gauge – MAXIM