数组比较(Shell基础教程5)
教程
Shell 支持数组处理。数组是包含多个值的变量,在 Shell 中,任何变量都可以用作数组。数组的大小没有上限,且成员变量无需连续索引或连续分配。
数组索引从零开始:第一个元素的编号为 0。
基本语法结构:
# 定义数组
# array=(value1 value2 ... valueN)
array=(23 45 34 1 2 3)
# 引用特定值(例如:引用第 3 个值,索引为 2)
echo ${array[2]}
# 引用所有数组值
echo ${array[@]}
# 获取数组元素个数
echo ${#array[@]}练习
在本练习中,您需要比较三个数组列表,并找出所有三个数组中的公共元素。
给定数组:
a=(3 5 8 10 6)b=(6 5 4 12)c=(14 7 5 7)
预期结果是它们的共同元素:5。
练习代码框架
#!/bin/bash
# 在此处输入您的数组比较代码预期输出
5参考解决方案
#!/bin/bash
# 在此处输入您的数组比较代码
# 初始化数组 a, b, c
a=(3 5 8 10 6)
b=(6 5 4 12)
c=(14 7 5 7)
# 比较前两个数组 a 和 b,将匹配结果存入数组 z
for x in "${a[@]}"; do
for y in "${b[@]}"; do
if [ "$x" = "$y" ]; then
# 将匹配结果赋值给新数组 z
z[${#z[@]}]=$x
fi
done
done
# 将第三个数组 c 与新数组 z 进行比较
for i in "${c[@]}"; do
for k in "${z[@]}"; do
if [ "$i" = "$k" ]; then
# 将匹配结果赋值给新数组 j
j[${#j[@]}]=$i
fi
done
done
# 打印数组 j 的内容
echo ${j[@]}系列教程导航
- Hello, World!(Shell 基础教程 1)
- 变量 (Shell 基础教程 2)
- 将参数传递给脚本 (Shell 基础教程 3)
- 数组 (Shell 基础教程 4)
- 数组比较 (Shell 基础教程 5)
- 基本运算符 (Shell 基础教程 6)
- 基本字符串操作 (Shell 基础教程 7)
- 逻辑表达式 (Shell 基础教程 8)
- 循环 (Shell 基础教程 9)
- shell 函数 (Shell 基础教程 10)
- 特殊变量 (Shell 基础教程 11)
- 字符串操作 (Shell 基础教程 12)
- 捕捉信号命令 (Shell 基础教程 13)
- 文件测试 (Shell 基础教程 14)
- 输入参数解析 (Shell 基础教程 15)
- 管道 (Shell 基础教程 16)
- 输入输出 (Shell 基础教程 17)
- 常用表达 (Shell 基础教程 18)
- 特殊命令 sed(Shell 基础教程 19)
版权声明:本文为原创文章,版权归 戴老师的博客 所有,转载请联系博主获得授权。
本文地址:https://1diff.fun/archives/shu-zu-bi-jiao-shell-ji-chu-jiao-cheng-5.html
如果对本文有什么问题或疑问都可以在评论区留言,我看到后会尽量解答。