さまざまなネットワーク統計を収集するスクリプトを作成しています。私がやろうとしているのは、netstat -i コマンドからデルタ データを生成することです。
次の bash コードを使用して、必要なデータを収集しています。
declare -a array
n=0
netstat -i | tail -n +3 | while read LINE; do
echo "Setting array[$n] to $LINE"
array[$n]=$LINE
echo "array now have ${#array[@]} entries"
let n=$n+1
done
echo "array now have ${#array[@]} entries"
このコマンドの出力は次のとおりです。
Setting array[0] to eth0 1500 0 4946794 0 0 0 2522971 0 0 0 BMRU
array now have 1 entries
Setting array[1] to lo 16436 0 25059 0 0 0 25059 0 0 0 LRU
array now have 2 entries
Setting array[2] to vmnet1 1500 0 6 0 0 0 1126 0 0 0 BMRU
array now have 3 entries
Setting array[3] to vmnet8 1500 0 955 0 0 0 1054 0 0 0 BMRU
array now have 4 entries
Setting array[4] to wlan0 1500 0 613879 0 0 0 351194 0 0 0 BMU
array now have 5 entries
array now have 0 entries
ご覧のとおり、配列は while ループの後で実際に消えてしまいますが、その理由はわかりません。