shell根据数组的值获取下标
时间: 2023-10-08 18:14:47 浏览: 96
在Shell中,可以使用循环遍历数组中的元素,并使用if语句判断元素的值是否等于目标值,从而得到目标值的下标。
例如,假设有一个名为array的数组,需要查找值为"apple"的元素的下标,可以使用以下代码:
```bash
array=("banana" "apple" "orange" "grape")
# 获取数组长度
len=${#array[@]}
# 遍历数组
for (( i=0; i<$len; i++ )); do
# 判断当前元素是否等于"apple"
if [[ "${array[$i]}" == "apple" ]]; then
# 如果相等,输出下标并退出循环
echo "Index of 'apple' is: $i"
break
fi
done
```
在上面的代码中,使用了for循环遍历数组中的每个元素,使用if语句判断当前元素是否等于"apple",如果相等,则输出当前下标并退出循环。注意,在Shell中,数组的下标从0开始。
相关问题
shell已知数组的内容怎么获取它的下标
在shell中,可以通过循环遍历数组元素,使用`${!array[@]}`来获取数组的下标列表,然后再在循环体内根据下标来获取对应元素。
例如,假设有一个数组`my_array`,可以使用以下代码获取它的下标:
```
# 定义数组
my_array=("apple" "banana" "orange")
# 获取数组下标
for index in "${!my_array[@]}"
do
echo $index
done
```
运行结果为:
```
0
1
2
```
其中,`${!my_array[@]}`表示获取`my_array`数组的下标列表,`for`循环遍历该列表并输出每个下标。
shell通过数组内容如何得知它的下标
在Shell中,可以通过循环遍历数组并使用条件语句来确定数组元素的下标。例如,可以使用以下代码:
```
#!/bin/bash
# 声明一个数组
array=("apple" "banana" "cherry" "date")
# 遍历数组
for i in "${!array[@]}"
do
# 如果数组元素等于特定值
if [ "${array[$i]}" = "cherry" ]
then
# 输出数组元素和下标
echo "The index of cherry is: $i"
fi
done
```
在上面的代码中,使用循环遍历数组,`"${!array[@]}"`可以获取数组的下标列表。然后使用条件语句检查数组元素是否等于特定值,在这个例子中是"cherry"。如果是,就输出数组元素和下标。