2014-11-01 20 views
0

bash腳本的要素之一(正則表達式和數組相關)我應該如何讓用戶參數匹配的bash陣列

declare -A colours=([red]="0;31" [RED]="1;31") 

echo -ne '\e['${colours[$1]}m 

問:echoc紅世

- >這應該打印世界大膽的紅色。 我應該如何讓RED與RED匹配?

+0

你問如何使'Red'匹配'RED'而不是'red'? – chepner 2014-11-01 13:38:55

回答

1

您可以使用參數擴展:

colour=${1^^*} 
    shift 

    echo -ne '\e['${colours[$colour]}m "[email protected]" 

^^變化匹配的字符爲大寫,*比賽的所有字符。

+0

這會將'red'轉換爲'RED',而不僅僅是'Red'(如果我正確地理解了這個問題)。 – chepner 2014-11-01 13:37:57