Linux基础——shell数组的定义方法

一、linux中数组的定义

数组(Array)是有序的元素序列。 若将有限个类型相同的变量的集合命名,那么这个名称为数组名。组成数组的各个变量称为数组的分量,也称为数组的元素,有时也称为下标变量。用于区分数组的各个元素的数字编号称为下标。 

1,数组的默认规则

  • 数组中的每个元素分分隔符一定为空格隔开
  • 每个元素都拥有与其对应的下标,第一个对应的下标值为0 

2,字符串和字符列表的定义

字符串的定义格式: 变量名= 字符数据 

 字符串列表的定义格式:  变量名="字符   分隔符  字符............." 

3,数组的定义方法

1)方法一

数组名=(value0  value1 value2  ......) 

2)方法二

数组名=( [0]=value1 [1]=value2  [2]=value3.........[N-1]=valueN  )

3)方法三

1.定义一个字符串列表 :列表名="value1 value2 value3...........valueN"

2.用数组获取字符串列表中的内容: 数组名=($列表名) 

4)方法四

数组名[0]=value1

 数组名[1]=value2

 数组名[2]=value3

 数组名[3]=value4

............................

 数组名[N-1]=valueN

 二、数组的输出,删除和长度统计

1,数组元素输出

1)单元素输出

格式:echo ${数组名[下标]} 

 2)数组全部元素输出

 方式一echo ${数组名[*]}

方式二echo  ${数组名[@]}

3)条件判断输出方式

 该输出方式,当数组存在元素,则输出数组的,如果不存在,则输出我们指定的内容

格式:echo ${数组名:-'选择输出的内容'}

 4)数组切片(任意字符起输出任意个数数组元素)

 方式一:echo ${数组名[*]:下标:个数}

 方式一:echo ${数组名[@]:下标:个数}

 2,数组的删除

1)删除单个数组元素

格式 unset   数组名[N]      其中N为存在元素的数组下标

 2)删除整个数组

格式:  unset  数组名[*]    或 unset  数组名[@] 

 3,数组的长度

格式:echo ${#数组名[*]}或 echo ${#数组名[@]}

 检测数组中是否存在空值

操作方法: 

1.定义一个变量获取数组的长度:新变量= ${#数组名[*]}

2.输出依据数组长度的最后一个元素:echo  ${数组名[lenth-1]]

3.与数据列表最后一个值进行比较

 三、数组的遍历和替换 

1,数组的遍历

2,数组元素替换

1)元素临时替换

格式: echo ${数组名[@]/被替换的字符或字段/新的字符或字段} 

 

3)永久替换

 四、数组追加元素

1,指定位置添加

 与定义数组方法4一样,直接赋予新值覆盖原来的元素

数组名[N]=新value

 2,末尾追加元素

格式:  数组名[${#数组名[@]}] =新元素

 3,末尾多元素追加

格式:数组名=("${数组名[@]}"  value1   value2 ......valueN)

 4,直接末尾追加多元素且格式最为简单

格式:  数组名+=(value1 value2 ........valueN)

 五、数组在函数的传参

#!/bin/bash
a=0
learn(){
local arr=$@
for i in ${arr[@]}
do
    let i*=2
    arr[$a]=$i
    let a++
done
echo ${arr[@]}
}
############### main ###############
read -p "请输入一个数组:" num
arr=($num)
echo "数组翻倍后为:$(learn ${arr[@]}) "

  • 1
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值