On 22/10/26 at 19:37, Jeffrey Walton wrote:
On Wed, Oct 21, 2026 at 12:34 PM Franco Martelli <[email protected]> wrote:

Hi,

I run into issue trying to populate an array with unique random value,
the issue is that I have an endless loop, here the snippet:

...
# Populate playlist array with unique random values
while [ "$index" -le "$total" ]; do
          clip="$(/usr/bin/numrandom /1..$total/)"
          if [[ ! ${playlist[@]} =~ "$clip" ]]; then      # [ -z
${rndarr[clip]} ]; then
                                                          # rndarr[$clip]=1
                 playlist[$index]=$clip
                 ((index++))
          fi
done
...

The code is broken:

$ shellcheck test.sh

In test.sh line 2:
while [ "$index" -le "$total" ]; do
^-- SC1009 (info): The mentioned syntax error was in this while loop.

In test.sh line 4:
         if [[ ! ${playlist[@]} =~ "$clip" ]]; then      # [ -z
         ^-- SC1046 (error): Couldn't find 'fi' for this 'if'.
         ^-- SC1073 (error): Couldn't parse this if expression. Fix to allow mor
e checks.


In test.sh line 5:
${rndarr[clip]} ]; then
                   ^-- SC1047 (error): Expected 'fi' matching previously mention
ed 'if'.
                       ^-- SC1072 (error): Unexpected keyword/token. Fix any men
tioned problems and try again.

Perhaps you can supply a working example?

already clarified, maybe a matching issue in the "if [[ ! ${playlist[@]} =~ "$clip" ]]; then" statement, please see "Second note:" in the following email:

https://lists.debian.org/debian-user/2026/10/msg00376.html

Kind regards,
--
Franco Martelli

Reply via email to