2016-10-22 93 views
0

最近,我想出了一个制作彩虹文本的好主意,但它仍然失败。我尝试制作一个嵌套循环,以便可以将它们的数组中的每个颜色和字符串分配到一起制作一个很酷的文字。字符串数组没有正确指定给每种颜色

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

希望它可以解决

+0

你的意思是在'输出'中的每个字母的颜色是什么? – kabanus

回答

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防止新行最后的回声添加它。

+0

像魅力一样工作 – ZyroXtend

+0

btw seq的用途是什么? – ZyroXtend

+0

它生成一个0到输出长度之间的所有数字的列表。也请接受,如果这是你的意思/需要。 – kabanus

相关问题