Chinaunix首页 | 论坛 | 博客
  • 博客访问: 273660
  • 博文数量: 76
  • 博客积分: 1414
  • 博客等级: 中尉
  • 技术积分: 702
  • 用 户 组: 普通用户
  • 注册时间: 2011-12-14 21:05
文章分类

全部博文(76)

文章存档

2013年(8)

2012年(68)

我的朋友

分类: LINUX

2012-04-06 23:15:35

array1=()
array1[0]=123
array1[1]=abc
shell中的数组使用方法
arr=(1 2 3 4 5 6 ab cde)
echo $arr # 默认获取第一个元素 :1
echo ${arr[1]} # 通过下标访问,0 是第一个元素,1是第二个元素:2
echo ${#arr[*]}   #输出数组的长度:8
echo ${#arr[@]}   #同上输出数组的长度:8
arr[${#arr[*]}]=7 #增加一个元素,现在是:arr=(1 2 3 4 5 6 ab cde 7)
echo ${arr[@]} #把数组 arr 当做字符串输出:1 2 3 4 5 6 ab cde 7
echo ${arr[*]} #同上把数组 arr 当做字符串输出:1 2 3 4 5 6 ab cde 7
arr[0]=8 #把下标为 0 的数组值改为 8,现在是 arr=(8 2 3 4 5 6 ab cde 7),echo ${arr[0]} 结果为 8
echo ${#arr[7]} #输出下标为 7 的元素(cde)的长度:3
echo ${arr[@]:1:3}  #切片方式获取一部分数组内容,获取下标为第1至第3之间的元素:1 2 3
echo ${arr[@]:2} #从第下标为 2 的元素开始到最后一个元素
echo ${arr[@]::2} #从头开始的前两个元素


###1
for i in {0..6};do
  a[$i]=$i
done
echo ${a[@]}

##2
x=0
for i in {1..6};do
  a[$x]=$i
  ((x++))
done
echo ${a[@]}
//  ((x++)) 等于 x=`expr ${x} + 1`
###

##循环输出数组元素的值(一)
A=(a b c def)
i=0
while [ $i -lt ${#A[*]} ];do
  echo ${A[$i]}
  let i++
done
#屏幕输出:
a
b
c
def
  
#循环输出数组元素的值 (二)
注意,在条件中,引用变量一定要用双引号 ,否则报错
  
  for (( j=0; j<"${#A[*]}"; j=j+1 ));do
    echo ${A[$j]}
  done
  
#循环输出数组元素的值 (三)
注意,${A[*]}不能写成$A ,$A默认是第一个元素,如果A="a b c def",就可以写$A

  for value in ${A[@]};do
    echo $value
  done
 
01
$ arr=(123 34 3 5)
02

array 的模拟操作
push:

array=("${array[@]}" $new_element)
pop:
array=(${array[@]:0:$((${#array[@]}-1))})

shift:

array=(${array[@]:1})

unshift

array=($new_element "${array[@]}")

function del_array {
  local i
  for (( i = 0 ; i < ${#array[@]} ; i++ ));do
    if [ "$1" = "${array[$i]}" ] ;then
     break
    fi
  done
  del_array_index $i
}

function del_array_index {
  array=(${array[@]:0:$1} ${array[@]:$(($1 + 1))})
}

阅读(719) | 评论(0) | 转发(0) |
0

上一篇:date

下一篇:查看服务器硬件信息

给主人留下些什么吧!~~