linux之Shell编程--Shell数组实例演示

Posted 菠萝印象威

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux之Shell编程--Shell数组实例演示相关的知识,希望对你有一定的参考价值。

一.Shell数组简介

和其它编程语言一样,Shell也有存储元素的数据结构,但是在Bash Shell中只支持一维数组,初始化大小时不需要定义数组大小,元素下标也是由0开始。

Shell数组的语法格式:array=(n1,n2,n3…n)

注意:
1.数组元素之间用空格符号隔开,如果不隔开则视为一个元素,如ab。
2.和其他语言不同的是,元素之间不能用 **,**隔开。

二.实例演示Shell数组

在这里插入图片描述

#!/bin/bash
array=(a bc "d")
echo "first value:${array[0]}"
echo "second value:${array[1]}"
echo "third value:${array[2]}"
echo "forth value:${array[3]}"

运行结果:
在这里插入图片描述

注意:
1.我们这里定义了拥有三个元素的数组a bc d,定义数组时可以数字和字母的组合,因为Shell里面都视为字符串。
例如:
在这里插入图片描述
输出:在这里插入图片描述
2.大家可能会看到,我们数组定义了三个元素,如果输出第四个元素并不会报错,只是无法显示。

数组的元素也可以更改

array[0]=1;array[1]="3";
echo "first value:${array[0]}"
echo "second value:${array[1]}"

在这里插入图片描述
结果:
在这里插入图片描述
只需要给对应位置的元素重新赋值即可。

输出数组的所有元素

echo "数组的所有元素为:${array[*]}"
echo "数组的所有元素为:${array[@]}"

在这里插入图片描述
使用${array[*]} 或者 ${array[@]}
结果:
在这里插入图片描述
获取数组的长度

echo "the length of array is:${#array[*]}"
echo "the length of array is:${#array[@]}"

在这里插入图片描述

和获取字符串的长度一样,结果为
在这里插入图片描述

三.遍历Shell数组

array=(1 b1 c)
for value in ${array[@]}; do
   echo $value
done

在这里插入图片描述
结果:
在这里插入图片描述

删除和增加数组元素
在这里插入图片描述

array=(1 b1 c)
unset array[0]
echo "delete array[0]:"
for value in ${array[@]}; do
   echo $value
done
array[0]=2
echo "add array[0]:"
for value in ${array[@]}; do
   echo $value
done

结果:
在这里插入图片描述
获取指定位置到指定位置的数组元素
通用的格式${array[@]:起始位置:长度},中间以":"隔开,如果第二项省略的话,就取后面所有的项

在这里插入图片描述

array=(a 1 3 a2)
echo  ${array[@]}    #输出所有元素
echo  ${array[@]:1}   #输出从下标为1开始的所有元素
echo  ${array[@]:0:2} # 输出从下标为 0 开始到下标为 2 结束的所有元素
echo  ${array[@]::2}  #输出下标为2的元素之前的所有元素
echo  ${array[@]:(-2):2} #输出从倒数第二个元素算起,取 2 位

结果:
在这里插入图片描述

Shell数组的简单操作就先演示到这里

以上是关于linux之Shell编程--Shell数组实例演示的主要内容,如果未能解决你的问题,请参考以下文章

Linux之Shell编程(11)--Shell函数实例演示

Linux之Shell编程(11)--Shell函数实例演示

linux之Shell编程--Shell参数传递实例演示

linux之Shell编程--Shell基本运算符之逻辑运算符和布尔运算符实例演示

Linux之Shell编程(12)--Shell输入/输出重定向实例演示

Linux之Shell编程(12)--Shell输入/输出重定向实例演示