Bash에서 소수 인쇄하기 [닫기]

Bash에서 소수 인쇄하기 [닫기]

안녕하세요. 저는 프로그래밍이 처음이고 현재 bash 스크립팅을 배우고 있습니다. 이 오류 "Line 28: Expected `)'"에 대해 도움을 주십시오.

아래에 내 프로그램이 나와 있습니다.

read -p "enter the number:" a
while [[ $a -le 100 ]]
do
echo "$a"
if [[ (($a-1) % 2) -eq 0 ]]
then
((a++))
fi
done

답변1

bash는 산술 평가를 사용하므로 $(( ... ))테스트에는 다음이 필요합니다.

if [[ $((($a-1) % 2)) -eq 0 ]]; then ...

그러나 변수 확장은 산술적 맥락에서 암시적이므로 다음과 같이 작성할 수 있습니다.

if [[ $(((a-1) % 2)) -eq 0 ]]; then ...

하지만, 산술 표현식의 상태를 직접 사용할 수 있으므로 실제로 외부 테스트 괄호가 필요하지 않습니다.

if (( (a-1) % 2 == 0 )); then ...

관련 정보