新手必看 | 如何使用 Linux Shell 创建序列数组?

640?


         这里我主要说的是高效生成list 字符串,还有数组方法。


一、 seq方法生成


[chengmo@centos5 shell]$ aNumList=$(seq 100);

[chengmo@centos5 shell]$ echo $aNumList

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3637 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 6869 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100


         aNumList得到是字符串,不同之处以:空格分隔开。在linux里面,可以把它看作是list. 可以通过for…in 循环读取。


[chengmo@centos5 shell]$ for i in $aNumList;do echo $i;done;

1

2

3

4……


         如果需要生成array只需要将$(seq 100) 再加个”()”即可。


[chengmo@centos5 ~]$ aNumList=($(seq 100));

[chengmo@centos5 ~]$ echo $aNumList

1

[chengmo@centos5 ~]$ echo ${#aNumList[@]}

100


         长度是100的数组。


二、 通过内部{begin..end}生成


         这种方法生成seq非常方便。通过内部运算符完成。


[chengmo@centos5 ~]$ echo {1..10}

1 2 3 4 5 6 7 8 9 10

[chengmo@centos5 ~]$ for a in {1..10};do echo $a;done;

1

2

3

4

5

6

7

8

9

10


三、 性能比较

[chengmo@centos5 ~]$ time echo {1..100}

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3637 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 6869 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100


real 0m0.000s

user 0m0.001s

sys 0m0.000s


[chengmo@centos5 ~]$ time echo $(seq 100)

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 3637 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 6869 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100


real 0m0.003s

user 0m0.002s

sys 0m0.001s


         从上面可以看到,{begin..end}速度比seq调用快了不少了。 以后调用时候可以考虑通过内部操作符完成。

作者:程默

www.cnblogs.com/chengmo/archive/2010/10/14/1851517.html


最后3天免费课程火热开讲中,运维干货内容免费抢先听点击文末“阅读原文”即可免费听运维课当然也有其他IT课程免费听(Java、前端、大数据、Python、设计、C++、嵌入式、网络营销),后台回复“姓名+联系方式+所在+课程名称”也可申请其他免费课程,火速抢先~~~~

PS:记得查收小编送你的免费大礼包呦~

福利 | 一万多套PPT模板等你免费来拿!无条件领取!

免费送 | 1000多套简历模板免费拿,附赠简历制作教程!

免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~

640? 640?wx_fmt=jpeg

▼▼点击【阅读原文】,免费听5天Linux运维干货分享课,火热开讲中,速来抢!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值