[英]Unknown error in script using awk
標題似乎不清楚。
這是我的第一個腳本:
#!/bin/bash
read $1
tijd=$(($minuten*60))
echo "Het script zal elke" '$1' "minuten de tijd naar buiten printen "
echo "De resultaten worden in het bestand ''Grafiek.txt'' geplaatst, activeer ''script2.sh'' om de grafiek te creeren. "
while true; do
Datum=$(date "+%x %H:%M")
Snelheid=$(speedtest |grep -oP '^Download: \K.*')
sleep $tijd
echo "$Datum $Snelheid" >> Grafiek.txt
done
這是文件Grafiek的內容的樣子:
21/12/16 18:50 355.44 Mbits/s
21/12/16 18:52 161.59 Mbits/s
21/12/16 18:54 101.52 Mbits/s
這是我的第二個腳本:
#!/bin/bash
for fn in `cat Grafiek.txt`; do
DatumDag="$(awk 'BEGIN{FS=" "}{print $1}' Grafiek.txt)"
DatumUur="$(awk 'BEGIN{FS=" "}{print $2}' Grafiek.txt)"
Snelheid="$(awk 'BEGIN{FS=" "}{print $3}' Grafiek.txt)"
IntSnelheid=${Snelheid%[.]*}
Aantalsterretjes=$(($IntSnelheid/20))
Grafiek=" "
for ((i=0; i<$Aantalsterretjes+1; i++))
do
Grafiek="$Grafiek*"
done
echo "DatumDag DatumUur Grafiek"
done
第一個腳本可以完美運行。 我只是想獲得下載速度並打印出名為“ grafiek”的“圖表”
這是script2的回顯形式:
21/12/16 18:50 355.44 Mbits/s *******
21/12/16 18:52 161.59 Mbits/s ****
21/12/16 18:54 101.52 Mbits/s **
Script2有多個錯誤,我無法付諸實踐。
我認為主要的錯誤是“ Snelheid”無法執行任何算術運算,這意味着速度。
有人能找出問題所在嗎?
我想您的第二個腳本需要以下內容。 我真正改變的唯一一件事是,您從Grafiek.txt
(而不是Project2.txt
的內容中解析一行,以設置變量DatumDag
, DatumUur
和Snelheid
。 (有關將我的for
循環替換for
while
循環的原因,請參見Bash FAQ001 。)
while read -r DatumDag DatumUur Snelheid units; do
IntSnelheid=${Snelheid%.*}
Aantalsterretjes=$(($IntSnelheid/20))
Grafiek=" "
for ((i=0; i<$Aantalsterretjes+1; i++)); do
Grafiek="$Grafiek*"
done
echo "$DatumDag $DatumUur $Snelheid $units $Grafiek"
done < Grafiek.txt
#!/bin/bash
while read -r line; do
speed=${line%.*}
speed=${speed##* }
speed=$(printf %$((speed/20))s)
echo "$line ${speed// /*}"
done < Grafiek.txt
正在運行...
$ ./a.sh
21/12/16 18:50 355.44 Mbits/s *****************
21/12/16 18:52 161.59 Mbits/s ********
21/12/16 18:54 101.52 Mbits/s *****
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.