shell使用while循环实现数组遍历
时间: 2023-09-27 14:05:59 浏览: 88
可以使用while循环和shell数组来实现数组遍历,实现的步骤如下:
1. 定义一个数组
```
arr=("apple" "banana" "cherry" "date")
```
2. 获取数组长度
```
length=${#arr[@]}
```
3. 初始化计数器
```
i=0
```
4. 使用while循环遍历数组,直到计数器i等于数组长度
```
while [ $i -lt $length ]
do
echo ${arr[$i]}
i=$((i+1))
done
```
完整示例代码如下:
```
#!/bin/bash
arr=("apple" "banana" "cherry" "date")
length=${#arr[@]}
i=0
while [ $i -lt $length ]
do
echo ${arr[$i]}
i=$((i+1))
done
```
相关问题
读文档name.txt 的第二列,然后使用while循环实现数组遍历shell
假设name.txt的内容如下:
```
1 Alice
2 Bob
3 Charlie
4 David
5 Eve
```
可以使用以下Shell脚本实现:
```
#!/bin/bash
# 读取name.txt的第二列到数组中
names=($(awk '{print $2}' name.txt))
# 使用while循环遍历数组
i=0
while [ $i -lt ${#names[@]} ]
do
echo ${names[$i]}
i=$((i+1))
done
```
运行以上脚本,输出为:
```
Alice
Bob
Charlie
David
Eve
```
shell编程读文档name.txt 的第二列,然后使用while循环实现数组遍历
假设name.txt的内容如下:
```
Tom 18
Jerry 20
Mickey 25
```
可以使用以下shell脚本读取第二列并遍历:
```shell
#!/bin/bash
# 读取第二列并存入数组
ages=($(awk '{print $2}' name.txt))
# 遍历数组
i=0
while [ $i -lt ${#ages[@]} ]
do
echo "age[$i]: ${ages[$i]}"
i=$(($i+1))
done
```
输出结果为:
```
age[0]: 18
age[1]: 20
age[2]: 25
```
解释一下脚本的实现过程:
1. 使用awk命令读取name.txt文件中的第二列,将结果存入ages数组中。
2. 使用while循环遍历ages数组,输出每个元素的值。其中,`${#ages[@]}`表示数组的长度,`$(($i+1))`表示将变量`$i`加1。