我是 bash 新手,找不到很好的教程来回答我的问题。
array=( item1 item2 item3 )
for name in ${array[@]}; do
echo current/total
... some other codes
done
Run Code Online (Sandbox Code Playgroud)
我想计算current和total值,因为它的预期输出是:
1/3
2/3
3/3
Run Code Online (Sandbox Code Playgroud)
感谢您提供任何提示。
ste*_*ver 155
您可以使用访问数组索引${!array[@]}和使用数组的长度${#array[@]},例如:
#!/bin/bash
array=( item1 item2 item3 )
for index in ${!array[@]}; do
echo $index/${#array[@]}
done
Run Code Online (Sandbox Code Playgroud)
请注意,由于 bash 数组的索引为零,您实际上会得到:
0/3
1/3
2/3
Run Code Online (Sandbox Code Playgroud)
如果您希望计数从 1 开始运行,您可以替换$index为$((index+1)). 如果您想要值以及索引,您可以使用"${array[index]}"即
#!/bin/bash
array=( item1 item2 item3 )
for index in ${!array[@]}; do
echo $((index+1))/${#array[@]} = "${array[index]}"
done
Run Code Online (Sandbox Code Playgroud)
给予
1/3 = item1
2/3 = item2
3/3 = item3
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
136200 次 |
| 最近记录: |