linux - 使用 awk 的脚本中出现未知错误

标签 linux bash file charts scripting

标题似乎有点不清楚。

这是我的第一个脚本:

#!/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 的内容,以设置变量 DatumDagDatumUurSnelheid。 (请参阅 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/

相关文章:

linux - Vagrant Shell Provisioning 运行但失败

java - 如何读取文件中从行号 n 到行号 m 的行?

arrays - Bash 脚本和数组推送

linux - Bash 中的 If then else 文件类型

c - 读取失败,错误消息 "Invalid argument"

perl - perl 的 int(-M $file) 有什么作用?

c - 如何防止网络堆栈修改我的 IP header ?

linux - 在将服务器安装到数据中心之前如何验证服务器的硬件?

linux - Mongodb 停止工作 : Aborted (core dumped)

bash - Zsh 中的哪个快捷方式与 Bash 中的 Ctrl-U 相同?