bash脚本的新手,并且在使用以下代码时遇到问题。 我试图将数组编号与您从“读取ans”输入的数字进行比较,问题主要是比较十进制数
BGpercent=(0 99 99.3 99.6 99.8 100)
BGpoint=(0 1 2 3 4 5)
read ans
for (( c=${#BGpercent[@]}; c>=0; c-- ))
do
echo "${BGpercent[$c]}"
if [ "${BGpercent[$c]}" <= "$ans" ];
then
result=${BGpoint[$c]}
break
fi
done
echo $result | bc -lstrong text
Error - ./testscript.sh: =: No such file or directory
答案 0 :(得分:1)
我想问题出在你的if
检查(浮点比较)中。
#!/bin/bash
BGpercent=(0 99 99.3 99.6 99.8 100)
BGpoint=(0 1 2 3 4 5)
read ans
for (( c=$[ ${#BGpercent[@]} - 1 ] ; c>=0; c-- ))
do
if (( $(echo "${BGpercent[$c]} <= $ans" |bc -l) ));
then
result=${BGpoint[$c]}
break
fi
done
此外,变量c
值必须在开头递减,否则它将包含无效的索引值。我不确定你打算用最后一行(echo $result | bc -lstrong text
)
答案 1 :(得分:0)
BGpercent =(0 99 99.3 99.6 99.8 100) BGpoint =(0 1 2 3 4 5)
echo“写下您的号码:” 读号码
for((c = $ {#BGpercent [@]} - 1; c&gt; -1; c--))
做
echo $ {BGpercent [$ c]}
布尔= echo "if (${BGpercent[$c]} <= ${number}) 1" | bc
if [“$ bool”1 -eq 11];然后
结果= $ {BGpoint [$ C]}
打破
网络