linux 数组 下标访问,shell-数组访问

下标访问

与其他语言(java,c++)一样,shell访问数组的具体元素是通过下标来指定的,格式为:

array[n]

array表示数组名,n为下标(n从0开始,所以访问元素n,下标为n-1)

#!/bin/bash

array=(1 3 4 5 6)

echo "访问第四个元素 ${array[3]}"

echo "访问第二个元素 ${array[1]}"

输出结果为:

8a24097f330b76ee95044ff9125b2888.png

统计数组长度

使用系统变量$#来统计长度,语法为:

${#array[@]}或${#array[*]}

$*表示将结果以“参数1 参数2 ....”的形式将结果以一个字符串的形式返回。

$@表示将结果以“参数1” “参数2” “参数3” ....“参数n”的形式将结果逐个返回每个参数。实际差别不大

例如:

#!/bin/bash

array=(1 2 3 4 5 6 7 8 9 10)

echo ${#array[@]}

echo ${#array[*]}

输出结果为:

35a2834e3b4566ae85419e6bd611fbb2.png

循环遍历数组

for循环(类C风格)来遍历数组

#!/bin/bash

array=(Mon Tue Wed Thu Fri Sat Sun)

j="${#array[*]}"

for ((i=0;i

do

echo "${array[$i]}"

done

输出结果为:

32562c93fbd212d76f2786108ffddb72.png

切片获取部分数组元素

所谓切片就是截取部分元素或某个元素的部分内容,其语法为:

${array[@]:起始位置:终止位置:}或${array[*]:起始位置:终止位置}

实例:

#!/bin/bash

program=(c c++ c# java python PHP perl go .net js shell)

echo "第三到第六的语言为:${program[*]:2:5}"

echo "第七到第十一的语言为:${program[@]:6:10}"

输出结果为:

ac4384b1e8df67f454bfd386e4d41689.png

替换数组元素

对数组元素进行替换,语法为:

${array[@]/old/new}

直接在切片的代码里面加吧

#!/bin/bash

program=(c c++ c# java python PHP perl go .net js shell)

echo "替换Java这个家伙 ${program[@]/java/VisualBasic}"

a=${program[@]/PHP/java}

b=(${program[@]/shell/Ruby}) #不加园括号就会变成字符串,加了得到的还是数组

echo

echo $a

echo

echo ${b[@]}

输出结果为:

5fa927b1c8c8c2d5e1d28e5b61c1619a.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值