bash语法错误:算术运算符无效

bash语法错误:算术运算符无效,bash,Bash,我有这个bash代码,当我运行它时,它抛出算术运算符错误 #!/bin/bash path=$1; cluster=`cd $1; df -k . | tail -1 | awk -F: '{print $1}' | awk -F- '{print $1}'` volume=`cd $1; df -k . | tail -1 | awk '{print $1}' | awk -F: '{print $2}' | awk -F/ '{print $3}'` if [[ $cluster ==

我有这个bash代码,当我运行它时,它抛出
算术运算符错误

#!/bin/bash

path=$1;
cluster=`cd $1; df -k . | tail -1 | awk -F: '{print $1}' | awk -F- '{print $1}'`
volume=`cd $1; df -k . | tail -1 | awk '{print $1}' | awk -F: '{print $2}' | awk -F/ '{print $3}'`

if [[ $cluster == *"clap"* ]]; then
avg_latency_val=$(cd /net/kkcmon02/app/whisper/netapp/perf/sanjose/$cluster-cls-mgt/svm/vs0/vol/$volume; whisper-fetch --pretty avg_latency.wsp| tail -n 30 | grep -v None | awk -v N=6 '{ sum += $N } END { if ( NR > 0 ) {print sum/NR} else {print 0}}')

elif [[ $cluster == *"isic"* ]]; then
echo "Graphana can monitor only Netapp volumes & this is a volume coming from Isilon."

else
avg_latency_val=$(cd /net/kkcmon02/app/whisper/netapp/perf7/sanjose/$cluster/vol/$volume; whisper-fetch --pretty avg_latency.wsp| tail -n 30 | grep -v None | awk -v N=6 '{ sum += $N } END { if ( NR > 0 ) {print sum/NR} else {print 0}}')

fi

if [[ "${avg_latency_val}" -le  "30" ]] ; then
    echo "Average Latency on the volume for last 30 mins is "${avg_latency_val}" ms (Good)"

elif [[ "${avg_latency_val}" -gt "30" ]] ; then
    echo "Average Latency on the volume for last 30 mins is "${avg_latency_val}" ms (Bad)"

else
    echo "Average Latency on the volume Looks Good!!"
fi
下面是我运行上述代码时发生的错误。请让我知道我做错了什么

k_test.sh:第21行:[:1.98381:语法错误:无效算术 操作员(错误标记为“.98381”)


Bash只处理整数。你需要做一些简单的工作才能理解像那样的小数点

你在这里有很多事情要做。你能把你遇到问题的部分发出来吗?如果是小数问题,如果你想用
bc
命令来做算术运算的话,
(…)
而不是
[[…]]
这是一个怎样的答案?你说的“切碎工作”是什么意思?
bc
处理小数很好。
bc-q elif[[“${avg\u latency\u val}”-gt“30”];它无法判断此值是否大于,因为它是一个小数点…解决方法:删除小数点,只需将其更改为不同的时间度量值。如果您花时间读取,它会提示您…无效的算术运算符(错误标记为“.98381”)也许在给我态度之前先读一读…@JonathanPugh,会试试的。我不认为有人在“给你态度”,关键是模糊地提到“砍刀工作”并不是一个有用的答案。