Shell中创建序列和数组(list、array)的方法
关于linux数组定义,以及生成方法,请看:linuxshell动态生成数组系列seq使用技巧。这里我主要说的是高效生成list字符串,还有数组方法。
一、seq方法生成:
[chengmo@centos5shell]$aNumList=$(seq100); [chengmo@centos5shell]$echo$aNumList 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
aNumList得到是字符串,不同之处以:空格分隔开。在linux里面,可以把它看作是list.可以通过for…in 循环读取。
[chengmo@centos5shell]$foriin$aNumList;doecho$i;done; 1 2 3 4……
如果需要生成array只需要将$(seq100)再加个”()”即可。
[chengmo@centos5~]$aNumList=($(seq100));
[chengmo@centos5~]$echo$aNumList
1
[chengmo@centos5~]$echo${#aNumList[@]}
100
长度是100的数组。
二、通过内部{begin..end}生成
这种方法生成seq非常方便。通过内部运算符完成。
[chengmo@centos5~]$echo{1..10}
12345678910
[chengmo@centos5~]$forain{1..10};doecho$a;done;
1
2
3
4
5
6
7
8
9
10
三、性能比较
[chengmo@centos5~]$timeecho{1..100}
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
real0m0.000s
user0m0.001s
sys0m0.000s
[chengmo@centos5~]$timeecho$(seq100)
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100
real0m0.003s
user0m0.002s
sys0m0.001s
从上面可以看到,{begin..end}速度比seq调用快了不少了。以后调用时候可以考虑通过内部操作符完成。
热门推荐
10 五一公司放假祝福语简短
11 追星女孩的祝福语简短
12 给长辈端午祝福语 简短
13 生日祝福语有诗意简短
14 团圆日祝福语简短
15 中秋商务祝福语简短最新
16 温暖文艺简短祝福语短句
17 男孩上学祝福语简短的
18 入住酒店文案祝福语简短