clear
echo "Enter size : "
read size
echo "Enter elements : "
for (( i=0; i<size; i++ ))
do
echo "Element " $i " : "
read arr[$i]
done
m=$(($n-1))
for (( i=0; i<m; i++ ))
do
cond=$((size-$i-1))
for (( j=0; j<cond; j++ ))
do
l=$(($j+1));
if [ ${a[$j]} -gt ${a[$l]} ]
then
tmp=${a[$j]}
a[$j]=${a[$l]}
a[$l]=$tmp
fi
done
done
echo "Sorted Data : "
echo ${a[*]}
此代码正在执行,它接受输入并将它们存储在数组中。 我看到的下一件事就是打印出“Sorted Array”。 之后没有打印任何元素。
尝试,sh -x sort.sh
并且临时代码未被执行。
我是shell脚本的新手,无法理解错误。
clear
echo "Enter size : "
read size
echo "Enter elements : "
for (( i=0; i<size; i++ ))
do
echo "Element " $i " : "
read arr[$i]
done
m=$(($size-1))
for (( i=0; i<m; i++ ))
do
cond=$(($size-$i-1))
for (( j=0; j<cond; j++ ))
do
l=$(($j+1));
if [ ${arr[$j]} -gt ${arr[$l]} ]
then
tmp=${arr[$j]}
arr[$j]=${arr[$l]}
arr[$l]=$tmp
fi
done
done
echo "Sorted Data : "
echo ${arr[*]}
答案 0 :(得分:2)
您的计划中出现两件错误:
arr[]
,但稍后将其称为a[]
。更改其中一个名称以匹配另一个名称。$n
。你的意思是$size
。改变这一点。我认为你的程序应该在此之后工作。
答案 1 :(得分:2)
问题1:你可以互换使用$ size和$ n。
问题2:你再次使用了arr []和[]数组。