
echo A program to print primes between 2 numbers
read -p "Enter starting number of range: " n1
read -p "Enter ending number of range: " n2
echo ""
if [ $n1 -le $n2 ]
then
while [ $n1 -le $n2 ]
do
d=2
while [ $d -lt $n1 ]
do
if [ $((n1%d)) -eq 0 ]
then
break
fi
if [ $d -eq $n1 ]
then
echo Prime: $d
fi
d=$((d+1))
done
n1=$((n1+1))
done
else
echo First number must be smaller than second number
exit
fi
답변1
프로그램을 올바르게 들여쓰면 오류가 더 분명해집니다.
암호
if [ $d -eq $n1 ]
then
echo Prime: $d
fi
while [ $d -lt $n1 ]
은 루프 내부에 있으므로 d=$((d+1))
루프의 끝에 있기 때문에 실행되지 않습니다.