在Bash中使用if语句比较两个整数时出现问题

在Bash中使用if语句比较两个整数时出现问题,bash,Bash,我有两个数组。一个包含城市名称,另一个包含带小数的数字。我想声明我选择了最低的数字,并根据该数字的位置选择城市。到目前为止,我得到的结果如下: min=1000 for j in {1..9}; do for g in "${array2[$j]}"; do if [ $g -lt $min ]; then min = $g city2

我有两个数组。一个包含城市名称,另一个包含带小数的数字。我想声明我选择了最低的数字,并根据该数字的位置选择城市。到目前为止,我得到的结果如下:

min=1000
for j in {1..9};
do
        for g in "${array2[$j]}";
        do

                if [ $g -lt $min ]; then
                        min = $g
                        city2="${array[$j]}"
                fi
done;
done;
echo $city2

我得到一个错误,说需要一个整数。我怎样才能解决这个问题?我知道这与我的数字有小数有关。

一般来说,这意味着从数组中提取的值不是整数。您没有向我们展示
array2
的定义,因此这里没有;代码不够完整,其他人无法运行并查看问题。此外,
min=$g
也不是赋值——它运行一个带有参数
=
和其他参数(如果有)的命令
min
,具体取决于
$g
。如果要更改
$min
,请使其
min=$g
不带空格。