emc*_*cek 2 random variables bash
我需要来自COLOUR_*的打印值(即CadetBlue)随机变量*我试过"
echo $COLOUR_${NUMBER}
echo "$COLOUR_${NUMBER}"
Run Code Online (Sandbox Code Playgroud)
和许多其他人都没有工作.
我有打击:
#!/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
Run Code Online (Sandbox Code Playgroud)
或使用数组:
#!/bin/bash
NUMBER=$(( $RANDOM % 9 ))
echo $NUMBER
COLOURS=(AliceBlue AntiqueWhite AntiqueWhite1 AntiqueWhite2
AntiqueWhite3 AntiqueWhite4 BlanchedAlmond BlueViolet CadetBlue)
echo ${COLOURS[$NUMBER]}
Run Code Online (Sandbox Code Playgroud)
而不是说
echo $COLOUR_$NUMBER
Run Code Online (Sandbox Code Playgroud)
说:
color=COLOUR_${NUMBER}
echo ${!color}
Run Code Online (Sandbox Code Playgroud)
您可以在此处详细了解间接扩展 .