2

我需要来自 COLOUR_* 的(即 CadetBlue)随机变量的打印值我试过”

echo $COLOUR_${NUMBER}
echo "$COLOUR_${NUMBER}"

和许多其他人都没有工作。

我有 bash:

#!/bin/bash
NUMBER=$[ ( $RANDOM % 9 )  + 1 ]
echo $NUMBER

COLOUR_1=AliceBlue
COLOUR_2=AntiqueWhite
COLOUR_3=AntiqueWhite1
COLOUR_4=AntiqueWhite2
COLOUR_5=AntiqueWhite3
COLOUR_6=AntiqueWhite4
COLOUR_7=BlanchedAlmond
COLOUR_8=BlueViolet
COLOUR_9=CadetBlue

echo $COLOUR_$NUMBER
4

2 回答 2

5

或使用数组:

#!/bin/bash
NUMBER=$(( $RANDOM % 9 ))
echo $NUMBER

COLOURS=(AliceBlue AntiqueWhite AntiqueWhite1 AntiqueWhite2
    AntiqueWhite3 AntiqueWhite4 BlanchedAlmond BlueViolet CadetBlue)

echo ${COLOURS[$NUMBER]}
于 2013-07-18T11:16:18.897 回答
5

而不是说

echo $COLOUR_$NUMBER

说:

color=COLOUR_${NUMBER}
echo ${!color}

您可以在此处阅读有关间接扩展 的更多信息。

于 2013-07-18T11:16:58.773 回答