bash - 一次循环两个数组值
问题描述
如何一次循环两个数组值?我尝试使用for
循环,但我只能弄清楚如何一次回显一个。
#!/bin/bash
array=(value1 value2 value3 value4 value5 value6 value7 value8 value9 value10)
for i in ${array[@]}
do
echo $i
done
有没有办法改变 for 循环,它一次回显两个值,如下所示?
value1 value2
value3 value4
value5 value6
value7 value8
value9 value10
解决方案
循环索引比循环元素更容易。您可以通过索引拉出这两个元素:
for ((i = 0; i < ${#array[@]}; i += 2)); do
echo "${array[i+0]} ${array[i+1]}"
done
或者您可以使用以下语法提取数组切片${variable[@]:offset:length}
:
for ((i = 0; i < ${#array[@]}; i += 2)); do
echo "${array[@]:i:2}"
done
如果您一次需要两个以上的元素,这将特别有用。
推荐阅读
- python - 如何以数组形式将model.get_weight保存到csv?
- javascript - 整个 foreach 完成后需要一行运行
- ios - 如何自动将设备添加到配置文件?
- angular - 从 FileReader 发出的 RxJs 多个 observables - 收集为数组
- php - CakePHP3 合并添加和编辑动作
- unit-testing - 远程验证未在单元测试中触发
- android - 底部带有按钮的约束布局文本
- jakarta-ee - 使用命令行或 bat 文件将 ear 启动到 WebSphere
- c - 在 Visual Studio 2017 调试器中查找 NaN 出现的根
- firebase - 如何通过颤振从firebase获取下载URL?