我正在尝试在 bash 中执行简单的整数比较,我是新手,我的方法导致错误。任何意见,将不胜感激。
我的基本逻辑是我在飓风轨迹点上阅读。同一个 track_id 可能有多个条目,具有不同的压力值。我想要做的是将每个 track_id 只存储一个条目到数组 track_id_poly 中;压力最低的情况。所以我循环遍历每一行,并尝试将当前压力(对于 $int)与之前的轨道压力($int - 1)进行比较,如果它较低,则将之前的数组值替换为新的较低压力。我希望这是有道理的。我的代码如下。
int=0
while read track_id ppres_inter
do
printf -v pres_inter "%.0f" "$pres_inter"
echo pressure $pres_inter
case $int in
0)
Track_id_poly[$int]=$track_id
Pres_inter_poly[$int]=$pres_inter
((int=int+1)) ;;
*)
if [[ $track_id == ${Track_id_poly[$int-1]} ]]
then
if (( $pres_inter -lt ${Pres_inter_poly[$int-1]} ))
then
Track_id_poly[$int-1]=$track_id
Pres_inter_poly[$int-1]=$pres_inter
fi
else
Track_id_poly[$int]=$track_id
Pres_inter_poly[$int]=$pres_inter
((int=int+1))
fi ;;
esac
done <$file_poly
int_poly=$int
echo Number of polygon crossings from set $i is $int_poly
导致我出现问题的行是 $pres_inter 的整数比较。
if (( $pres_inter -lt ${Pres_inter_poly[$int-1]} ))
我收到以下错误:
line 41: 96800 -lt 98759 : syntax error in expression (error token is "98759 ")
任何解决此问题的提示将不胜感激。可能是一个简单的修复!