Isso deve ser feito:
#!/bin/bash
printf '%s\nTIME (s)\tSIGNAL STRENGTH (dBm)\tBITRATE (MBit/s)\n' "$(date --iso-8601=seconds)" >>log
for ((i=0; i<=60; i=i+5)); do
iw dev wlp3s0f0 station dump | awk -vt=$i '=="signal:"{s=} =="bitrate:"{b=} END {printf "%d\t%d\t%.1f\n", t, s, b}' >>log
sleep 5
done
Ele anexará o horário atual no formato ISO 8601 seguido por esse cabeçalho em um arquivo denominado log
no diretório de trabalho atual e anexará a saída relevante de iw dev wlan1 station dump
nesse formato a ele a cada 5 segundos, por 60 segundos .
Exemplo de execução na minha máquina:
% bash script.sh
^C
% cat log
2016-03-29T20:00:22+0200
TIME (s) SIGNAL STRENGTH (dBm) BITRATE (MBit/s)
0 63 54.0
5 40 54.0
10 63 54.0
Para imprimir também a taxa de bits RX:
#!/bin/bash
printf '%s\nTIME (s)\tSIGNAL STRENGTH (dBm)\tTX BITRATE (MBit/s)\tRX BITRATE (MBit/s)\n' "$(date --iso-8601=seconds)" >>log
for ((i=0; i<=60; i=i+5)); do
iw dev wlp3s0f0 station dump | awk -vt=$i '=="signal:"{s=} ="tx"&&=="bitrate:"{tb=} ="rx"&&=="bitrate:"{rb=} END {printf "%d\t%d\t%.1f\t%.1f\n", t, s, tb, rb}' >>log
sleep 5
done