speedtest
次のcreateという関数を含むbashスクリプトがあります。
function speedtest
{
echo $time_min;
echo $(date +%R),"$(speedtest-cli --csv)" >>temp.csv # Outputs van datum en speedtest in temp.csv
cut -d, -f1,8 < temp.csv >> output2.csv; # Verwijderd onnodige info uit temp en plaatst het in output.csv
awk -F , -v OFS=, '$3/=1000000' <output2 >output2.csv # Zet bits/s om naar Mbp/s
rm temp.csv;
}
この機能をx分ごとに実行したいと思います。
答え1
function speedtest {
ksh 関数定義構文です。ここでは$SECONDS
浮動小数点に設定でき、sleep
1秒未満の精度を持つ組み込みコマンドを持つksh93を使用することもできます。
min=60
((every = 5 * min))
typeset -F SECONDS=0
t=0
while true; do
speedtest
sleep "$(( (t += every) - SECONDS))"
done
ksh93
組み込みのタイムスタンプとCSVの解析/生成もあるので、速度テスト機能を次のように書くことができます。
function speedtest
{
typeset -a fields
echo "$time_min"
speedtest-cli --csv | IFS=, read -rSA fields
((fields[1] /= 1e6))
{
printf '%(%R)T'
printf ',%#q' "${fields[@]:0:7}"
printf '\n'
} > output.csv
}
zsh
浮動小数点に設定することもできますが、$SECONDS
組み込みではないため、sleep
1秒未満の省電力モードをサポートしていないシステムでは機能しません。 1秒(センチ秒)の間寝る機能が内蔵されていsleep
ます。zselect