0

I am trying

for i in {4..100}
do
  is_prime=true
  a=$(($i-1))
  for divider in {2..$a}
  do  
    b=$(($i % $divider)) # <-- line 9
    [ $b -eq 0 ] && echo 'y' #is_prime=false
  done
  [ is_prime == true ] && print "${i} is prime!"
done

but I get

$ ./3_largest_prime.sh 
./3_largest_prime.sh: line 9: 4 % {2..3}: syntax error: operand expected
(error token is "{2..3}")

1 Answers1

2

If you put

set -xv  

in your script, you might be able to detect why there is an error.

In your script, it will output this line:

+for divider in '{2..$a}'

Notice the expansion did not occur. Read through the linked duplicates to identify how to fix it.

Miati
  • 3,150