shell 遍历数组,将数组元素赋值变量
数组定义
数组描述
获取数组长度
数组长度的获取⽅法有下⾯三种,常⽤的是前⾯两种。或
访问数组元素数组下标是从0开始 的,如果下标是:*或者@ 则得到整个数组内容。为数组元素赋值在为数组元素赋值时候,通过索引(下标从0开始)为数组元素赋值,若存在,会替换原来的值。追加元素在数组末尾追加元素通过索引(下标从0开始)为元素赋值。若不存在,则会添加⼀个新的元素。遍历数组array =('aaa' 18 20 'bbb' 'aba aba')
1length =${#array [@]}
1
length =${#array [*]}1
length =${#array}1echo  ${arr [2]}var =${array [3]}    #将数组元素赋值给变量var echo  $var
1
23
怎么给数组赋值4array =('aaa' 18 20 'bbb' 'aba aba')array [2]=qaz 1
2array =('aaa' 18 20 'bbb' 'aba aba')array [5]=qaz
1
2for  elem  in  ${array [@]}; do    echo  $elem    #done
1
2
3
4for  i  in  $(seq  0 ${#array [@]}); do    elem =${array [$i ]}    echo  $elem    #done
1
2
3
4
5
举例
利⽤数组进⾏代码中⽂本的替换。
参考#codes dir
FILE_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$(seq0 ${#OLD_LINES_ARRY[@]});do
old_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
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。