shell数组问题

来源:百度知道 编辑:UC知道 时间:2024/06/02 15:12:06
帮看下哪里出错?
#!/bin/bash
let sum=0
declare -a A
A=(张三 84 李四 78 王五 85.5 周六 90.5)
for((i=1;i<=7;i=i+2))
do
sum=$sum+${A[$i]}
done
sum=$sum/4
echo "平均分:$sum"
for((i=1;i<=7;i=i+2))
do
if((${A[$i]}>=${A[$((i+2))]}))
then
sum=${A[$i]}
done
echo "最高分:$sum"
#end
怎么把文件里的各项放到数组中?
#!/bin/bash
declare -a sz
i=0
cat file.txt|awk '{print }'>f
for n in `cat f`
${sz[$i]}=$n
i=((i+1))
echo "${sz[$i]}"

rm f

给你稍微的修改了以下
declare -a A
A=(张三 84 李四 78 王五 85 周六 90)
for((i=1;i<=7;i=i+2))
do
let sum=$sum+${A[$i]}
done

let sum=$sum/4
echo "平均分:$sum"

for((i=1;i<=7;i=i+2))
do
if((${A[$i]}-ge${A[$((i+2))]}))
then
let sum=${A[$i]}
fi
done
echo "最高分:$sum"
#end

1 你的if没有结束语句fi
2 let你用的有些问题
3 let不支持小数点, 就支持整数
4 if中间不要用<= >=什么的一内置的-ge 表示>=
5 我觉得bash干这个活太一班了, 不是干这个的料。