我在尝试
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
但我得到
$ ./3_largest_prime.sh
./3_largest_prime.sh: line 9: 4 % {2..3}: syntax error: operand expected
(error token is "{2..3}")
答案1
如果你把
set -xv
在您的脚本中,您也许能够检测到出现错误的原因。
在您的脚本中,它将输出这一行:
+for divider in '{2..$a}'
请注意,扩展并未发生。通读链接的重复项以确定如何修复它。