字符串数组未正确分配给每种颜色

时间:2016-10-22 08:50:19

标签: bash

最近,我提出了一个好主意制作彩虹文本,但它仍然失败。我试图制作一个嵌套循环,这样它们的数组中的每个颜色和字符串都可以一起分配,以制作看起来很酷的文本。

output=(Z y r o V P N)
rainbow=(9 202 11 46 43 90 91)
for i in ${rainbow[*]}
do
    for x in ${output[*]}
    do
        echo -e "\e[38;5;${i}m${x}\e[0m"
    done
done

但是这会发生什么 all text is colored

希望它能够得到解决

1 个答案:

答案 0 :(得分:0)

您需要迭代两个循环一起

   #!/bin/bash
   output=(Z y r o V P N)
   rainbow=(9 202 11 46 43 90 91)
   for i in $(seq 0 ${#output[*]}); do
       echo -en "\e[38;5;${rainbow[i]}m${output[i]}\e[0m"
   done
   echo

-n会阻止新行,最后的回声会添加它。