标题似乎有点不清楚。
这是我的第一个脚本:
#!/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
。 (请参阅 Bash FAQ 001,因为我用 while
循环替换了您的 for
循环。)
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
关于linux - 使用 awk 的脚本中出现未知错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41271914/