(点击
上方公众号
,可快速关注)
作者:程默
www.cnblogs.com/chengmo/archive/2010/10/14/1851517.html
如有好文章投稿,请点击 → 这里了解详情
关于linux数组定义,以及生成方法,请看:
linux shell 动态生成 数组系列 seq使用技巧
。这里我主要说的是高效生成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
36
37
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
68
69
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
36
37
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
68
69
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
36
37
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
68
69
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调用快了不少了。 以后调用时候可以考虑通过内部操作符完成。
本系列:
看完本文有收获?请分享给更多人
关注「Linux 爱好者」,提升Linux技能