Shell中数组的应用

基本用法
数组可以使用declare –a来显示声明,数组下标的范围没有任何限制,同时也不必使用连续的分量。可以通过${array[i]}.访问数组中的元素。如果不指定元素,则表示第一个元素。@ 与*相同,但是使用时加引号,并在引号中返回每个参数,*则作为一个整体的字符串返回。

# A=(a b c def)

# echo ${A[@]}

a b c def

# echo ${A}

a

#echo ${A[*]}

a b c def

#for i in “${A[@]}”; do     echo $i done

显示的结果:

a

b

c

def

#for i in “${A[*]}”; do     echo $i done

显示结果:

a b c def

//显示目前有值的数组序号:――bash 3.0以后才支持。
# echo ${!A[@]}
0 1 2 3
//取得数组元素的个数
# echo ${#A[@]}
4
显示第3个元素里面的元素的个数:
echo ${#A[3]}
3
echo ${#A[2]}
1

用shell数组实现的选择排序

#!/bin/bash
 
values=(39 5 36 12 9 3 2 30 4 18 22 1 28 25)
numvalues=${#values[@]}
for (( i=0; i < numvalues; i++ )); do
lowest=$i
for (( j=i+1; j < numvalues; j++ )); do
if [ ${values[j]} -le ${values[$lowest]} ]; then
lowest=$j
fi
done
temp=${values[i]}
values[i]=${values[lowest]}
values[lowest]=$temp
done
for (( i=0; i < numvalues; i++ )); do
echo -ne "${values[$i]}\t"
done
echo -e "\n\n-------end---------\n"

以上部分参考http://blog.chinaunix.net/u/21908/showart.php?id=1420565 非常感谢原作者的总结与分享

2 Comments

紫砂壶August 27th, 2010 at 11:28 am

不知道你用ruby吗?我觉得比shell脚本好学多了

[Reply]

admin Reply:

不会用ruby啊 我是涉及的广 没啥精的 过奖了 都是码工嘛 欢迎交流^_^

[Reply]

Leave a comment

Your comment