bash数组操作

1.数组声明和赋值

>>>declare -a array  # unnecessary
#The following 3 lines all can define an array and give values
>>>array=(0 1 2)
>>>array=([0]=0 [1]=1 [2]=v2)
>>>array[0]=0

#以空白作为分隔符拆分字符串为数组
>>>str="1 2 3"
>>>array=($str)

#使用declare -p array 来查看是否数组和数组的结构
>>>declare -p array  #输出为 declare -a arr='([0]="1" [1]="2" [2]="3")'

#使用其它分隔符拆分字符串为数组,需指定IFS
>>>IFS=: array=($PATH)

#使用read -a 拆分字符串为数组
>>>read -a array <<<$str
>>>declare -p array #输出为 declare -a arr='([0]="1" [1]="2" [2]="3")'

>>>IFS=/ read -r -a PARTS <<<$PWD 

2.引用数组元素:

$array  ${array}  ${array[0]}  #第0个元素
${array[n]}  #第n个元素(n从0开始计算)

3.引用整个数组

${array[*]}  ${array[@]}   这两种方式等同,会把数组展开。

${array[*]}  表示把数组拼接在一起的整个字符串,如果作为参数传递,
               会把整个字符串作为一个参数。

${array[@]}  如果作为参数传递,表示把数组中每个元素作为一个参数,
               数组有多少个元素,就会展开成多少个参数。

3.计算数组元素长度:

${#array[*]}  ${#array[@]}   不是 ${#array},因为它等同于 ${#array[0]}

4.遍历数组

for i in "${array[@]}"; do echo $i; done

5.

6.

参考:http://codingstandards.iteye.com/blog/1164910

CHENTONG
版权声明:本文为博主原创文章,转载请注明出处。
alipay.png WeChatPay.png

CHENTONG

CHENTONG
积微,月不胜日,时不胜月,岁不胜时。凡人好敖慢小事,大事至,然后兴之务之。如是,则常不胜夫敦比于小事者矣!何也?小事之至也数,其悬日也博,其为积也大。大事之至也希,其悬日也浅,其为积也小。故善日者王,善时者霸,补漏者危,大荒者亡!故,王者敬日,霸者敬时,仅存之国危而后戚之。亡国至亡而后知亡,至死而后知死,亡国之祸败,不可胜悔也。霸者之善著也,可以时托也。王者之功名,不可胜日志也。财物货宝以大为重,政教功名者反是,能积微者速成。诗曰:德如毛,民鲜能克举之。此之谓也。

生信宝典文章集锦

生信的作用越来越大,想学的人越来越多,不管是为了以后发展,还是为了解决眼下的问题。但生信学习不是一朝一夕就可以完成的事情,也许你可以很短时间学会一个交互式软件的操作,却不能看完程序教学视频后就直接写程序。也许你可以跟着一个测序分析流程完成操作,但不懂得背后的原理,不知道什么...… Continue reading

生信宝典文章集锦

Published on January 01, 2100

生信宝典文章集锦

Published on January 01, 2100