码迷,mamicode.com
首页 > 编程语言 > 详细

shell之数组

时间:2017-04-24 23:20:58      阅读:215      评论:0      收藏:0      [点我收藏+]

标签:计算机编程   编程语言   单引号   字符串   知识点   

数组的定义

  何为数组?学过计算机编程语言的同学都知道,数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义呢,我们来看两种数据类型:一是数值类型,二是字符串类型;虽然shell本身是弱类型的,但也可以这么区分。

  数值类型的数组:一对括号表示数组,数组中元素之间使用"空格"来隔开。

举个例子

数值类型:

arr_number=(1 2 3 4 5);

字符串类型:同样,使用一对括号表示数组,其中数组中的元素使用双括号或者单引号包含,同样使用"空格"来隔开。

arr_string=("abc" "edf" "sss"); 或者 arr_string=(‘abc‘ ‘edf‘ ‘sss‘);

数组的操作

  我们使用数值类型数组arr_number=(1 2 3 4 5)做为源数组进行相关的讲解:获取数组长度,读取某个下标的值,对某个下标赋值,删除、分配、替换以及遍历。提一个知识点,我们在shell里面想获取某个变量的值,使用$符开头,如:$a或者${a}


获取数组长度

echo ${#arr_string[*]}或 echo ${#arr_string[@]}  就是讲中括号里面前面加个#号

获取某个下标的值

${数组名[下标]}

对某个下标进行赋值:

这里需要提出两个问题:

第一个问题是如果该下标元素已经存在,会怎么样?

答:会修改下标的值为新的指定值。

第二个问题是如果指定的下标已经超过当前数组的大小,如上述的arr_number的大小为5,指定下标为10或者11或者大于5的任意值会如何?

答:新赋的值被追加到数组的尾部。如:

[root@linux-node2 script]# arr_number[19]=9

[root@linux-node2 script]# echo ${arr_number[*]}

1 2 3 4 5 8 8 9


删除操作

 清除某个元素:unset arr_number[19]

 清除整个数组:unset arr_number


分片访问

  分片访问形式为:${数组名[@或*]:开始下标:结束下标},注意,不包括结束下标元素的值。

 例如:echo ${arr_number[*]:0:4}


模式替换

 形式为:${数组名[*或@]/模式/新值}

 例如:echo ${arr_number[*]/2/98}


数组的遍历

  数组遍历我们使用for语句来演示:

    for v in ${arr_number[@]}; do

      echo $v;

    done


结束语:数组使用的方式还比较少,之后在写脚本的过程中,希望能将数组运用好


本文出自 “常想一二” 博客,请务必保留此出处http://250919938.blog.51cto.com/962010/1918830

shell之数组

标签:计算机编程   编程语言   单引号   字符串   知识点   

原文地址:http://250919938.blog.51cto.com/962010/1918830

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!