谷姐:我们都是谷歌迷
We are all Google fans

shell根据数组元素获取下标-maxkvm

Rate this post

已知根据下标获取元素的写法是
a=(14 25 39 46 52)
echo ${a[2]}
输出结果是 39

那么根据元素如何查询该元素的对应下标呢?

热议
2楼 heihai 昨天22:08

不同下标相同数据呢,要怎么判断

3楼 maxkvm 昨天22:09

不同下标相同数据呢,要怎么判断

输出两个不同的下标值

4楼 HOH 昨天22:10

这位同学,我布置的作业请自己完成

5楼 maxkvm 昨天22:12

这位同学,我布置的作业请自己完成

不会就不要凑热闹

6楼 yanzhiling2002 昨天22:17

计算机的排序是从0开始的,不是常识中的1.

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

a=(14 25 39 46 52)

a0 =14
a1 =25
a2 =39

7楼 maxkvm 昨天22:19

计算机的排序是从0开始的,不是常识中的1.

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

我没说错啊,下标2对应的元素是39

8楼 yanzhiling2002 昨天22:25

我没说错啊,下标2对应的元素是39

不好意思,没看清楚要求

我能想到的就是键值对用shell操作比较麻烦

9楼 yanzhiling2002 昨天22:28

我给你问了一下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楼 gundam06ms 昨天22:29

你说的不清不楚,会重复吗?是大小排列好的么?

12楼 maxkvm 昨天22:39

你说的不清不楚,会重复吗?是大小排列好的么?

不必大小排列,就是我说的自定义排列

13楼 maxkvm 昨天22:40

不好意思,没看清楚要求

我能想到的就是键值对用shell操作比较麻烦

所以根据元素求下标是没有这种操作吗?

14楼 maxkvm 昨天22:42

我给你问了一下chatgpt

在shell中,可以使用数组来存储元素,并使用循环结构来查找元素对应的下标。 例如 ...

chatgpt完全帮不上忙,它说的还是根据下标求元素,这个不用它来回答,反过来根据元素求下标呢?

15楼 irony 昨天23:15

chatgpt完全帮不上忙,它说的还是根据下标求元素,这个不用它来回答,反过来根据元素求下标呢? ...

shell里已知数组为a=(14 25 39 46 52),那么如何获取元素39的数组下标?
在bash shell中,您可以使用以下脚本找到数组中特定值的索引:

a=(14 25 39 46 52)
value=39
index=-1

for i in "${!a[@]}"; do
if [ "${a}" -eq "$value" ]; then
index=$i
break
fi
done

echo "Index of $value is $index"

这个脚本首先定义了一个数组a和一个要查找的值value。我们将index初始化为-1,表示尚未找到该值。然后,我们用for循环遍历数组,并使用${!a[@]}获取数组的所有索引。当找到等于value的元素时,我们将index设置为当前索引并退出循环。最后,我们输出找到的索引。在这个例子中,它将输出Index of 39 is 2,因为39位于数组的第2个位置(索引从0开始)。

答案跟上边类似的,就是先把元素遍历出来然后再依次去比较,没想到还挺麻烦的,shell里的编程根本懒得记,以后都去问chatgpt好了

不同的shell和版本语法有不同的地方,更复杂的任务建议用python处理了。

申明:本文内容由网友收集分享,仅供学习参考使用。如文中内容侵犯到您的利益,请在文章下方留言,本站会第一时间进行处理。

未经谷姐允许不得转载:谷姐靓号网 » shell根据数组元素获取下标-maxkvm
分享到: 生成海报

热门文章

评论 抢沙发

评论前必须登录!

立即登录   注册

买Google Voice认准【谷姐靓号网】

Google Voice靓号列表Google Voice自助购买
切换注册

登录

忘记密码 ?

切换登录

注册

我们将发送一封验证邮件至你的邮箱, 请正确填写以完成账号注册和激活