Linux资料之数组

本文详细介绍了Linux shell,特别是ksh和bash中数组的定义、访问、修改、分片及遍历方法。在ksh中,使用set -A命令创建数组,而在bash中,数组元素以空格分隔,仅支持一维数组。访问数组元素通过下标[ ],可以修改或增加元素,使用切片操作进行分片,并提供了多种遍历数组的方式,包括标准for循环、for ... in以及while循环。

◆ ksh定义数组:

set -A argname a b c

其中,set -A 告诉shell要建立一个数组,argname是数组名,a b c等字符为数组元素,下标为0,用空格分开.

访问数组的方法:

echo ${argname[*]} 显示数组所有元素
echo ${argname[n]} 显示数组第n个元素
echo ${#argname[*]} 显示数组元素个数
echo ${# argname [@]}

◆ bash:

一对括号表示是数组,数组元素用“空格”符号分割开。Bash只支持一维数组,不支持多维数组。

array_name=(ele1  ele2  ele3 ... elen)

1、访问元素:

获取数组中的元素要使用下标[ ],下标可以是一个整数,也可以是一个结果为整数的表达式

${array_name[index]}

其中,array_name 是数组名,index 是下标。使用@或*可以获取数组中的所有元素。

${array_name[*]}
${array_name[@]}

2、修改或增加元素

直接通过获取元素赋值即可修改或增加元素

array_name[index]=value

3、分片:
直接通过 ${数组名[@或*]:起始位置:长度} 切片原先数组,返回是字符串,中间用“空格”分开,因此如果加上”()”,将得到切片数组,上面例子:c 就是一个新数据。

echo ${a[@]:1:4}
c=(${a[@]:1:4})

4、替换:
调用方法是:${数组名[@或*]/查找字符/替换字符} 该操作不会改变原先数组内容,如果需要修改,可以看上面例子,重新定义数据。

echo ${a[@]/3/100}

◆ 数组遍历:

1、标准的for循环

#${#array[@]}获取数组长度用于循环
for(( i=0;i<${#array[@]};i++)) 
do
    echo ${array[i]}
done

2、for … in

#也可以写成for element in ${array[*]}
for element in ${array[@]}
do
    echo $element
done

遍历(带数组下标):

for i in "${!arr[@]}"
do
    printf "%s\t%s\n" "$i" "${arr[$i]}"
done 

3、While循环法:

i=0
#当变量(下标)小于数组长度时进入循环体
while [ $i -lt ${#array[@]} ] 
do    
    echo ${ array[$i] }   #按下标打印数组元素
    let i++
done 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值