这里我主要说的是高效生成list 字符串,还有数组方法。
[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的数组。
这种方法生成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:记得查收小编送你的免费大礼包呦~
免费领 | 《Shell脚本 100例》电子书免费拿,运维必备干货~
▼▼点击【阅读原文】,免费听5天Linux运维干货分享课,火热开讲中,速来抢!