2017-03-20 14 views
0

我有一個speedtest-cli skript並嘗試awk結果。我想獲得下載速度爲整數,所以我可以與其他結果在If,then ..條件下進行比較。我skript的shell:awk到int變量

部分:

#!/bin/sh 


speedtest-cli | awk '/Download:/ {print $2} ' > /root/tmp1 
read speed1 < /root/tmp1 
speedtest-cli | awk '/Download:/ {print $2} ' > /root/tmp2; 

read speed2 < /root/tmp2 
if [ $speed1 -gt $speed2 ];then 
echo "test";fi 

的問題是,我的awk的結果(75.27)心不是保存爲整數!當涉及到如果,我得到一個錯誤: sh:75.27:壞數字

我也會繼續從awk結果定義變量直接,但那不工作!

speedtest-cli | var=$(awk '/Download:/ {print $2} ' > /root/tmp1) 

我怎樣才能 「AWK」 的SPEEDTEST-CLI結果,得到可以在一個if ...被compaired然後conditin的變量?

請大家幫忙, THX問候伊戈爾

+1

是否使用'打印INT($ 2)'解決問題了嗎? –

+1

是的!詮釋($ 2)解決了我的問題。謝謝! –

回答

0

,如果你想比較浮點數,你可以在awkbc -l

例如做

speed1=$(speedtest-cli | awk '/Download:/{print $2}') 
... 
speed2=$(speedtest-cli | awk '/Download:/{print $2}') 

if (($(echo "$speed1 > $speed2" | bc -l))); then ... 

另一種選擇是,如果你想將它們作爲整數進行比較,但不希望由於舍入而丟失數字,將它們乘以較大的值並將其轉換爲int。

speed1000=$(speedtest-cli | awk '/Download:/{print int($2*1000)}') 
... 
現在 bash

可以處理整數比較...