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基本运算符之逻辑运算符和布尔运算符实例演示