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?

Jeff

Reply via email to