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调用快了不少了。以后调用时候可以考虑通过内部操作符完成。
热门推荐
6 小托班祝福语简短
10 拜年年祝福语大全简短
11 婚礼远方嘉宾祝福语简短
12 圣诞贺卡祝福语简短高级
13 新春祝福语大全 英语简短
14 元旦祝福语同学简短创意
15 病人的生日祝福语简短
16 送别的祝福语朋友简短
17 晚安好梦祝福语简短
18 画室揭牌仪式祝福语简短