数组定义
array=('aaa' 18 20 'bbb' 'aba aba')
数组描述
获取数组长度
数组长度的获取方法有下面三种,常用的是前面两种。
length=${#array[@]}
或
length=${#array[*]}
或
length=${#array}
访问数组元素
数组下标是从0开始 的,如果下标是:*
或者@
则得到整个数组内容。
echo ${arr[2]}var=${array[3]} #将数组元素赋值给变量varecho $var
为数组元素赋值
在为数组元素赋值时候,通过索引(下标从0
开始)为数组元素赋值,若存在,会替换原来的值。
array=('aaa' 18 20 'bbb' 'aba aba')array[2]=qaz
追加元素
在数组末尾追加元素通过索引(下标从0
开始)为元素赋值。若不存在,则会添加一个新的元素。
array=('aaa' 18 20 'bbb' 'aba aba')array[5]=qaz
遍历数组
for elem in ${array[@]}; doecho $elem#do something....done
for i in $(seq 0 ${#array[@]}); doelem=${array[$i]}echo $elem#do something....done
举例
利用数组进行代码中文本的替换。
#codes dirFILE_DIR="/repos/codes"OLD_LINES_ARRY=('RECEIVER_STATE''INTRA''NOT_ALLOWED''EP_TO''NOT_PROCESSING_RESOURCES''UNKNOWN_LOCAL')NEW_LINES_ARRY=('CAUSE_WITH_RECEIVER_STATE''HAND_TYPE_INTRA''HAND_TYPE_NOT_ALLOWED;''HAND_TYPE_EP_TO''CAUSE_NOT_PROCESSING_RESOURCES''CAUSE_NETWORK_UNKNOWN_LOCAL')for i in $(seq 0 ${#OLD_LINES_ARRY[@]}); doold_line="${OLD_LINES_ARRY[$i]}"new_line=${NEW_LINES_ARRY[$i]}find $FILE_DIR -type f -a -iname "*.cc" | xargs sed -i "s/$old_line/$new_line/g"done
参考
/article/142266.htm
/article/69165.htm