linux - Bash:在for循环中重复数组

标签 linux bash shell loops sh

试图在嵌套的 for 循环中重复一个数组:

#!/bin/bash

aaa=("nine" "ten" "eleven" "twelve")
bbb=("one" "two" "three" "four" "five" "six" "seven" "eight")
ccc=("thirteen" "fourteen")


for b in "${bbb[@]}" ; do
    for i in "${!aaa[@]}" ; do
        echo "$b" "${aaa[i]}" "${ccc[i]}"
    done
done

我明白了,其中第 11 行和第 12 行没有收到 ccc 元素:

one nine thirteen
one ten fourteen
one eleven 
one twelve 
two nine thirteen
two ten fourteen
two eleven 
two twelve 
three nine thirteen
three ten fourteen
three eleven 
three twelve 
four nine thirteen
four ten fourteen
four eleven 
four twelve 
five nine thirteen
five ten fourteen
five eleven 
five twelve 
six nine thirteen
six ten fourteen
six eleven 
six twelve 
seven nine thirteen
seven ten fourteen
seven eleven 
seven twelve 
eight nine thirteen
eight ten fourteen
eight eleven 
eight twelve

期望的输出:

one nine thirteen
one ten fourteen
one eleven thirteen
one twelve fourteen
two nine thirteen
two ten fourteen
two eleven thirteen
two twelve fourteen
three nine thirteen
three ten fourteen
three eleven thirteen
three twelve fourteen
four nine thirteen
four ten fourteen
four eleven thirteen
four twelve fourteen
five nine thirteen
five ten fourteen
five eleven thirteen
five twelve fourteen
six nine thirteen
six ten fourteen
six eleven thirteen
six twelve fourteen
seven nine thirteen
seven ten fourteen
seven eleven thirteen
seven twelve fourteen
eight nine thirteen
eight ten fourteen
eight eleven thirteen
eight twelve fourteen

最佳答案

从预期的输出你需要一个模 "${ccc[i%${#ccc[@]}]}" 而不是 "${ccc[i]}"

关于linux - Bash:在for循环中重复数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46325734/

相关文章:

shell - 使用 shell 脚本解析数据。 (排序/uniq/grep)

c - 任何可用于将 c99 样式注释//转换为 c 样式注释/* ..*/到整个项目的工具/脚本?

mysql - 在 Ubuntu 上使用 APT 安装的 MySQL 的 BASEDIR 在哪里?

python - 是否有可能知道 python 进程正在运行哪个脚本?

python - 这个安全需求怎么设计?

linux - 不能在 Bash 脚本中使用 expect

bash - 使用纯 bash 创建 URL 友好的 slug?

linux - Linux Bash脚本附录

linux - kprobe机制拦截do_page_fault

Linux 导出命令语法