2016-10-22 87 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

相關問題