初学者的shell数组

本文介绍了Shell数组的定义、特点、以及各种操作,包括数值类和字符串类型数组的定义,数组长度的获取,冒泡排序法,数组的切片、替换和删除,并提供了调试命令的使用示例。
摘要由CSDN通过智能技术生成

shell数组

bash支持一维数组(不支持多维数组),并且没有限定数组的大小。类似与C语言,数组元素的下标由0开始编号。获取数组中的元素要利用下标,下标可以是整数或算术表达式,其值应大于或等于0。
数组的特性就是一组数据类型相同的集合(不包括有一些编程语言提出来的关联数组的概念)。那么shell中数组是怎么定义的呢,我们来看两种数据类型:一是数值类型,二是字符串类型;虽然shell本身是弱类型的,但也可以这么区分。

数组的作用

获取数组的长度
获取元素的长度
遍历元素
元素切片
元素替换
元素删除

定义数组
数值类数组的定义

在Shell中,用括号来表示数组,数组元素用“空格”符号分割开。定义数组的一般形式为:

    array_name=(数值1 数值2 数值3 ...... 数值n)
字符串类型数组

同样,使用一对括号表示数组,其中数组中的元素使用双引号或者单引号包含,同样使用“空格”来隔开:

  arr_string=("abc" "edf" "sss"); 或者 arr_string=('abc' 'edf' 'sss');
一般定义shell数组有四种写法:
1)定义一组:数组名=(数值1 数值2 数值3 ...... 数值n)
2)逐个定义:数组名=([0]=数值1 [1]=数值2 ...... [n-1]=数值n)
3)列表定义:列表名=“数值1 数值2 数值3 ...... 数值n”
           数组名=($列表名)
4)定义一个:数组名[0]=数值1
           数组名[1]=数值2
           数组名[2]=数值3
           数组名[n]=数值n+1
12345678

5)根据上面的定义,应该明白在数组中数值表示的是元素,0-n表示的是下标,输出数组是

echo ${arr[*]},其中“*”表示的是所有,和@表示的一样含义

一般使用的是找出下标和数组长度之间的关系。

举例说明(快速创建数组、奇数数组)

要求1:快速创建一个数组,元素由用户自己定义

[root@localhost opt]# vim arr.sh 
#!/bin/bash
#快速创建一个数组
for ((i=0;i>=0;i++))
do
  read -p "请输入你需要定义数组元素:" num
##############如果用户输入的是空值则退出条件判断#################
  if [ -z $num ];then
  break
  else
###########定义数组,相当于列表定义################
    arr[$i]=$num
  fi
done
###############输出数组#####################
echo "你的数组是:${arr[*]}"
[root@localhost opt]# sh arr.sh
请输入你需要定义数组元素:12
请输入你需要定义数组元素:45
请输入你需要定义数组元素:56
请输入你需要定义数组元素:78
请输入你需要定义数组元素:56
请输入你需要定义数组元素:
你
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值