|
发表于 2003-4-30 19:34:44
|
显示全部楼层
这是一个嵌套的命令替换,它替换的顺序是由里到外的,
1,先执行最里面的(for...done),形成初始数组,未经排序的.
2,第一个嵌套的结果经过管道|给sort命令重新组合,形成新的数组.
3,echo $(...)是最后的变量替换,它将引用第二个嵌套的结果并显示出来.
4,最后给排序后的元素赋值给数组array,也就是说最外边的()实际上是BASH数组赋值的方式,即,array=(...)
是很绕得慌,不知道是否正确?
javalee//home/javalee>bash #我喜欢KSH
javalee//home/javalee>a=(1 2 9 5 3 6) #设置数组a
javalee//home/javalee>b=$(echo $(for i in ${a};do echo $i;done|sort -n)) #通过嵌套的方法设置数组b
javalee//home/javalee>echo ${b}
1 2 3 5 6 9 |
|