shell编程问题

array=(12231576548910)echo${array[@]}len=${#array[@]}i=0while["$i"-lt"$len"]dok=0j=$i... array=(12 23 15 7 6 5 4 8 9 10)
echo ${array[@]}
len=${#array[@]}
i=0
while [ "$i" -lt "$len" ]
do
k=0
j=$i+1
while [ "$j" -lt "$len" ]
do
if [ ${array[$i]} -gt ${array[$j]} ];then
k=${array[$i]}
{array[$i]}=${array[$j]}
{array[$j]}=$k
fi
j=$j+1
done
i=$i+1
done
echo ${array[@]}
报错./y: line 10: [: 0+1: integer expression expected
./y: line 6: [: 0+1: integer expression expected
while if 中的空格都加了
展开
 我来答
百度网友5311d79
2011-06-20 · TA获得超过1.9万个赞
知道大有可为答主
回答量:6356
采纳率:71%
帮助的人:3201万
展开全部
j=$i+1
i=$i+1
shell中不能这样直接做运算的,要么用 expr 表达式,要么用$(( ))运算符。
expr 表达式: j=`expr $i + 1`
注意空格。
$(( ))运算符:j=$((i+1))
cocopark1982
2011-06-19 · TA获得超过348个赞
知道小有建树答主
回答量:556
采纳率:0%
帮助的人:490万
展开全部
你这个是排序吧?你告诉我哪2行错了,我再帮你看看
更多追问追答
追问
while 的那2行 报错integer expression expected
追答
while [ "$i" -lt "$len" ] 这个吗?
$i $len
对掉”“试试
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式