How to select a random item from an array in shell

后端 未结 3 594
半阙折子戏
半阙折子戏 2020-12-01 03:54

I\'m creating a bot in Shell Script:

# Array with expressions
expressions=(\"Ploink Poink\" \"I Need Oil\" \"Some Bytes are Missing!\" \"Poink Poink\" \"Piii         


        
相关标签:
3条回答
  • 2020-12-01 04:46

    Change the line where you define selectedexpression to

    selectedexpression=${expressions[$RANDOM % ${#expressions[@]} ]}

    You want your index into expression to be a random number from 0 to the length of the expression array. This will do that.

    0 讨论(0)
  • 2020-12-01 04:53

    Here's another solution that may be a bit more random than Jacob Mattison's solution (hard to say from the jot manpages):

    declare -a expressions=('Ploink' 'I Need Oil' 'Some Bytes are Missing' 'Poink Poink' 'Piiiip Beeeep' 'Hello' 'Whoops I am out of memory')
    index=$( jot -r 1  0 $((${#expressions[@]} - 1)) )
    selected_expression=${expressions[index]}
    
    0 讨论(0)
  • 2020-12-01 04:55
    arr[0]="Ploink Poink"
    arr[1]="I Need Oil"
    arr[2]="Some Bytes are Missing!"
    arr[3]="Poink Poink"
    arr[4]="Piiiip Beeeep!!"
    arr[5]="Hello"
    arr[6]="Whoops! I'm out of memmory!"
    rand=$[$RANDOM % ${#arr[@]}]
    echo $(date)
    echo ${arr[$rand]}
    
    0 讨论(0)
提交回复
热议问题