全球主机交流论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

CeraNetworks网络延迟测速工具IP归属甄别会员请立即修改密码
查看: 1870|回复: 24
打印 上一主题 下一主题

shell根据数组元素获取下标

[复制链接]
跳转到指定楼层
1#
发表于 2023-3-31 22:05:50 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
已知根据下标获取元素的写法是
a=(14 25 39 46 52)
echo ${a[2]}
输出结果是 39

那么根据元素如何查询该元素的对应下标呢?
2#
发表于 2023-3-31 22:08:18 | 只看该作者
不同下标相同数据呢,要怎么判断
3#
 楼主| 发表于 2023-3-31 22:09:20 | 只看该作者
heihai 发表于 2023-3-31 22:08
不同下标相同数据呢,要怎么判断

输出两个不同的下标值
4#
发表于 2023-3-31 22:10:37 | 只看该作者
这位同学,我布置的作业请自己完成
5#
 楼主| 发表于 2023-3-31 22:12:35 | 只看该作者
HOH 发表于 2023-3-31 22:10
这位同学,我布置的作业请自己完成

不会就不要凑热闹
6#
发表于 2023-3-31 22:17:07 | 只看该作者
计算机的排序是从0开始的,不是常识中的1.

你看到的a2 ,在计算机执行里,是第三个数。

a=(14 25 39 46 52)

a0 =14
a1 =25
a2 =39
7#
 楼主| 发表于 2023-3-31 22:19:13 | 只看该作者
yanzhiling2002 发表于 2023-3-31 22:17
计算机的排序是从0开始的,不是常识中的1.

你看到的a2 ,在计算机执行里,是第三个数。

我没说错啊,下标2对应的元素是39
8#
发表于 2023-3-31 22:25:04 | 只看该作者
maxkvm 发表于 2023-3-31 22:19
我没说错啊,下标2对应的元素是39

不好意思,没看清楚要求

我能想到的就是键值对用shell操作比较麻烦
9#
发表于 2023-3-31 22:28:49 | 只看该作者
我给你问了一下chatgpt

在shell中,可以使用数组来存储元素,并使用循环结构来查找元素对应的下标。 例如,下面的脚本演示了如何使用循环结构查找数组中指定元素的下标:
shell
#!/bin/bash

# 定义一个数组
array=("apple" "banana" "orange" "pear" "peach")

# 需要查找的元素
element="orange"

# 使用循环结构查找元素
for i in "${!array[@]}"; do
  if [[ "${array[$i]}" = "${element}" ]]; then
    echo "元素 ${element} 的下标为 ${i}"
    break
  fi
done
在上述脚本中,首先定义了一个数组`array`,然后定义了需要查找的元素`element`。接着,使用`for`循环遍历数组中的每个元素,使用`if`语句判断当前元素是否为需要查找的元素,如果是,则输出该元素的下标,并使用`break`语句跳出循环。 需要注意的是,在`for`循环中,使用`${!array[@]}`来获取数组中所有元素的下标。`${array[$i]}`表示获取数组中下标为`$i`的元素的值。 如果需要查找数组中所有符合条件的元素的下标,可以将`break`语句删除,并将输出语句改为打印所有符合条件的元素的下标。
10#
发表于 2023-3-31 22:29:42 | 只看该作者
你说的不清不楚,会重复吗?是大小排列好的么?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|全球主机交流论坛

GMT+8, 2024-4-29 19:46 , Processed in 0.064305 second(s), 8 queries , Gzip On, MemCache On.

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表