在Bash中选择随机变量

时间:2013-07-18 11:12:05

标签: bash variables random

我需要来自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

2 个答案:

答案 0 :(得分:5)

或使用数组:

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

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

echo ${COLOURS[$NUMBER]}

答案 1 :(得分:5)

而不是说

echo $COLOUR_$NUMBER

说:

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

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