shell中数组的定义及操作(shell 数组变量)全程干货

随心笔谈9个月前更新 admin
219 00
🌐 经济型:买域名、轻量云服务器、用途:游戏 网站等 《腾讯云》特点:特价机便宜 适合初学者用 点我优惠购买
🚀 拓展型:买域名、轻量云服务器、用途:游戏 网站等 《阿里云》特点:中档服务器便宜 域名备案事多 点我优惠购买
🛡️ 稳定型:买域名、轻量云服务器、用途:游戏 网站等 《西部数码》 特点:比上两家略贵但是稳定性超好事也少 点我优惠购买

文章摘要

这篇文章介绍了Shell编程中数组的定义及操作方法。内容包括: 1. **数组定义方式**: - 直接赋值:`array=(1 2 3)` - 键值对形式:`array=([1]=one [2]=two [3]=three)` - 手动索引:通过手动给索引赋值定义数组。 - 动态定义:使用`$(ls /home)`等命令将输出结果作为数组内容。 2. **数组操作**: - 打印所有元素:使用`echo ${array[*]}`或`echo ${array[@]}`。 - 获取元素个数:使用`echo ${#array[*]}`或`echo ${#array[@]}`。 - 数组赋值:覆盖或新增元素(`array[3]=four`会新增元素,`array[1]=hello`会覆盖原值)。 - 数组删除:通过`unset array[1]`删除特定索引的元素,或`unset array`清空数组。 - 数组截取和替换:使用`array[@]:范围`截取部分元素,或重新赋值替换所有元素。 3. **循环输出所有元素**: ```bash array=(9 6 7 5 9 1) for((i=0;i<=${#array[@]}-1;i++)) do echo ${array[i]} done ``` 文章通过实例展示了Shell数组的基本定义方式和操作方法,适合初学者学习。



目录一、shell中数组的几种定义方式:二、数组的打印和输出

方法一:

[root@localhost ~]# array=(1 2 3)
[root@localhost ~]# echo ${array[*]}
1 2 3

方法二:

[root@localhost ~]# array=([1]=one [2]=two [3]=three)
[root@localhost ~]# echo ${array[*]}
one two three

方法三:

[root@localhost ~]# array[0]=a
[root@localhost ~]# array[1]=b
[root@localhost ~]# array[2]=c
[root@localhost ~]# echo ${array[1]}
b

方法四:动态定义数组变量,并使用命令的输出结果作为数组的内容

[root@localhost ~]# array=($(ls /home))
[root@localhost ~]# echo ${array[*]}
student

1)打印数组元素(其中@和*的作用相同,均是打印出所有元素)

[root@localhost ~]# array=(one two three)
[root@localhost ~]# echo ${array[2]}
three
[root@localhost ~]# echo ${array[0]}
one
[root@localhost ~]# echo ${array[@]}
one two three
[root@localhost ~]# echo ${array[*]}
one two three

2)打印元素个数

[root@localhost ~]# echo ${#array[*]}
3
[root@localhost ~]# echo ${#array[@]}
3

3)数组的赋值

#如果下标不存在,则自动添加一个新的元素,如果存在,则覆盖原来的值
[root@localhost ~]# array[3]=four
[root@localhost ~]# echo ${array[*]}
one two three four
[root@localhost ~]# array[1]=hello
[root@localhost ~]# echo ${array[*]}
one hello three four

4)数组的删除

[root@localhost ~]# unset array[1]
[root@localhost ~]# echo ${array[*]}
one three four
[root@localhost ~]# unset array
[root@localhost ~]# echo ${array[*]}

5)数组内容截取和替换

[root@localhost ~]# array=(0 1 2 3 4)
[root@localhost ~]# echo ${array[@]:1:3}
1 2 3
[root@localhost ~]# array=($(echo {a..z}))
[root@localhost ~]# echo ${array[@]}
a b c d e f g h i j k l m n o p q r s t u v w x y z
[root@localhost ~]# echo ${array[@]:1:3}
b c d
[root@localhost ~]# array=(1 2 3 4 5)
[root@localhost ~]# echo ${array[@]/3/three}
1 2 three 4 5

6)输出所有元素

#!/bin/bash
array=(9 6 7 5 9 1)
for((i=0;i<=${#array[@]}-1;i++))
do
echo ${array[i]}
done

到此这篇关于shell中数组的定义及操作的文章就介绍到这了,更多相关shell 数组定义及操作内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

您可能感兴趣的文章:shell Bash的数组与关联数组的实现shell编程入门之变量,字符串,数组,函数使用方法总结Shell中数组以及其相关操作的详细实例Shell数组添加元素及注意事项Shell命令之数组表示语法学习

© 版权声明

相关文章