There are two problems. One of them I expect 5 elements, But array store 15 elements as space.
Here is my code,
./example.sh
pick_random_data()
{
# seed random generator
RANDOM=$$$(date +%s)
#take array as parameter
declare -a argArr=("${!1}")
# pick a random entry from the domain list to check against
randomResult=${argArr[$RANDOM % ${#argArr[@]}]}
echo "$randomResult"
}
request_url[0]="POST /playready_license HTTP/1.0"
request_url[1]="POST /fairplay_license HTTP/1.0"
request_url[2]="POST /fairplay_license HTTP/1.1"
request_url[3]="POST /widevine_license HTTP/1.1"
request_url[4]="POST /playready_license HTTP/1.1"
counter=1
while [ "$counter" -le 3 ]
do
ran_req_url=$(pick_random_data request_url[@])
printf "{\"request_url\":\"%s\"}\n" $ran_req_url
((counter++))
done
bash example.sh
{"request_url":"POST"}
{"request_url":"/fairplay_license"}
{"request_url":"HTTP/1.1"}
{"request_url":"POST"}
{"request_url":"/fairplay_license"}
{"request_url":"HTTP/1.1"}
{"request_url":"POST"}
{"request_url":"/fairplay_license"}
{"request_url":"HTTP/1.1"}
But I wanna print like this
{"request_url":"POST /playready_license HTTP/1.0"}
{"request_url":"POST /playready_license HTTP/1.0"}
{"request_url":"POST /playready_license HTTP/1.0"}
And another problem is pick_random_data() function doesn't work.
And I tried another array form like
local request_url=(
POST\ /playready_license\ HTTP/1.0
POST\ /fairplay_license\ HTTP/1.0
POST\ /fairplay_license\ HTTP/1.1
POST\ /widevine_license\ HTTP/1.1
POST\ /playready_license\ HTTP/1.1
)
and this
local request_url=(
"POST /playready_license HTTP/1.0"
"POST /fairplay_license HTTP/1.0"
"POST /fairplay_license HTTP/1.1"
"POST /widevine_license HTTP/1.1"
"POST /playready_license HTTP/1.1"
)
These are still not working.
I refer random function in here.
https://www.christianroessler.net/tech/2015/bash-array-random-element.html
RANDOM=$$$(date +%s), you don't really need it.printf "{\"request_url\":\"%s\"}\n" "$ran_req_url"(see the quotes for the expansion of$ran_req_url?)ran_req_url=$(pick_random_data request_url[@]), remove the[@]...